如何用以某个数字开头的数字替换文件的名称?

时间:2018-05-20 22:05:39

标签: linux bash shell filenames

我希望从177.jpg开始,将文件命名为177.jpg,178.jpg等。 我使用它将它们从1重命名为文件数量:

ls | cat -n | while read n f; do mv "$f" "$n.jpg"; done 

如何修改?但是全新的剧本也会很棒。

2 个答案:

答案 0 :(得分:3)

Bash可以为你做简单的数学运算:

mv "$f" $(( n + 176 )).jpg

希望没有文件名包含换行符。

比解析ls的输出有更安全的方法,例如迭代扩展的通配符:

n=177
for f in * ; do
    mv "$f" $(( n++ )).jpg
done

答案 1 :(得分:2)

这应该有用。

#!/bin/bash
c=177;
for i in `ls | grep -v '^[0-9]' | grep .png`; # This will make sure only png files are selected to replace and only the files which have filenames which starts with non-numeric
 do
     mv "$i" "$c".png;
    (( c=c+1 )); 
done