如何重命名编号的文件从一个开始顺序增加?

时间:2015-08-06 22:13:10

标签: bash file rename naming

给定文件目录:

00012.png, 00013.png, 00014.png等......

将整个批次重命名为:

的最简单方法是什么

00001.png, 00002.png, 00003.png等......

我查了rename实用程序,但感到困惑。

其他一些问题与此类似,但它们非常具体(例如:"如何删除此下划线和三个随机字母"),因此他们通常会得到回答具有相似程度的特异性。我无法找到解决这个问题的方法。

2 个答案:

答案 0 :(得分:1)

如果您只想为文件编号,请使用简单的计数器:

# set counter to zero
i=0
for file in *png; do 
    # move file
    echo mv "$file" "$(printf "%05d.png" ${i})"
    # increase counter
    ((i++))
done

使用给定的文件名00012.png 00013.png 00014.png,结果为

mv 00012.png 00000.png
mv 00013.png 00001.png
mv 00014.png 00002.png

请删除echo,我刚刚将其添加进行测试。

答案 1 :(得分:-1)

会尝试这样的事情:

ls *.png | while read file; do
    mv "$file" "$(printf %05d $(expr $(echo $file | cut -d. -f1) - 11)).png"
done;

(您可以将“mv”替换为“echo”以进行测试)

$ touch 00012.png 00013.png 00014.png
$ ls *.png | while read file; do echo "$file" "$(printf %05d $(expr $(echo $file | cut -d. -f1) - 11)).png";done;
00012.png 00001.png
00013.png 00002.png
00014.png 00003.png