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

How to rename numbered files to begin and increase sequentially from one?

给定文件目录:

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

将整个批次重命名为的最简单方法是什么:

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

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

还有许多其他问题在性质上与此类似,但它们非常具体(例如:"how do I remove this underscore and three random letters"),因此通常会以相似的具体程度回答它们。我只是找不到解决这个精确问题的方法。

会尝试这样的事情:

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

如果你只想给文件编号,使用一个简单的计数器:

# 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,我只是添加它进行测试。