我在目录中有54个文件,其名称从* file00_Layer-53.png *到* file52_Layer-1.png *。我想将所有这些文件重命名为 file01.png 为 file53.png
我知道我必须使用rename命令,但是我很难使用它。提前致谢
答案 0 :(得分:2)
您可以使用重命名命令:
c=0 rename 's/.*/sprintf("file%02d.png", ++$ENV{c})/e' *.png
如果要先进行测试,请使用-n标志:
c=0 rename -n 's/.*/sprintf("file%02d.png", ++$ENV{c})/e' *.png
这种方法的工作方式是,对于每个参数,它执行perl s///
表达式,并执行从原始字符串到替换字符串的重命名。在替换字符串中,我使用sprintf
来格式化名称,其中我使用环境变量c
作为1的计数器。
或者您可以使用简单的循环计数器:
j=1; for i in *.png; do mv "$i" file"$j".png; let j=j+1; done
如果您想使用0填充2位数字:
j=1; for i in *.png; do mv "$i" file$(printf %02d $j).png; let j=j+1; done