如何重命名编号文件以从一个开始并按顺序增加?
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
,我只是添加它进行测试。
给定文件目录:
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
,我只是添加它进行测试。