linux使用重命名重命名多个文件

时间:2015-07-16 12:22:10

标签: regex linux

我有一堆文件(几千个)叫:

output.temp.1.csv output.temp.2.csv output.temp.3.csv

我希望所有人都重命名但删除了.temp

output.1.csv output.2.csv output.3.csv

我认为rename是我需要的,但不确定如何去做

我试过了:

rename 'output.temp' 'output', output.temp.*.csv

但这没有用......

关于如何改变这一点的任何建议?

...谢谢

3 个答案:

答案 0 :(得分:4)

您可以使用:

rename 's/output\.temp/output/' output.temp.*.csv

这会将3个文件重命名为:

output.1.csv
output.2.csv
output.3.csv

答案 1 :(得分:0)

以下是重命名所有文件的另一种解决方案:

ls -ltrh | grep -i output | awk '{print $9}' | awk -F\. '{print "mv",$0, $1"."$3"."$4}' | sh

答案 2 :(得分:0)

关闭anubhava的答案,如果你的所有文件都不在同一个目录中,你可以使用

find path/to/dir/ -name 'output.temp.*.csv' -exec rename 's/output\.temp/output/' {} +

重命名path/to/dir及其任何子目录中的所有文件。