给定文件目录:
00012.png, 00013.png, 00014.png
等......
将整个批次重命名为:
的最简单方法是什么 00001.png, 00002.png, 00003.png
等......
我查了rename实用程序,但感到困惑。
其他一些问题与此类似,但它们非常具体(例如:"如何删除此下划线和三个随机字母"),因此他们通常会得到回答具有相似程度的特异性。我无法找到解决这个问题的方法。
答案 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