我正在尝试在重命名脚本中向文件名末尾添加四位数字序列。但我遇到的问题是,它只能填充第一个文件,并且添加的数字不是按顺序的。以下是我的脚本:
起始文件名:
FILE-1.png
FILE-5.png
FILE-14.png
FILE-99.png
FILE-167.png
FILE-199.png
FILE-278.png
FILE-455.png
脚本:
a=`printf '%04d' "1"`
cd /${1-$PWD}
for i in *.png;
do mv $i `printf output.%04d.$a.png $(echo $i | sed 's/[^0-9]*//g')`;
let a=a+1
done
编辑:
我稍微修改了脚本,包含了顶部的fmt
变量。但是我仍希望它按照第一组数字的数值顺序来命名第二组数字,就像下面我的期望输出那样。
fmt=output.%04d
n=1
cd /${1-$PWD}
for i in *.png;
do mv $i `printf $fmt.%04d.png $(echo $i | sed 's/[^0-9]*//g') "$n"`;
n=$((n+1))
done
我的新输出:
output.0001.0001.png
output.0005.0007.png
output.0014.0002.png
output.0099.0008.png
output.0167.0003.png
output.0199.0004.png
output.0278.0005.png
output.0455.0006.png
原始输出:
output.0001.0001.png
output.0005.7.png
output.0014.2.png
output.0099.8.png
output.0167.3.png
output.0199.4.png
output.0278.5.png
output.0455.6.png
希望结果如下:
output.0001.0001.png
output.0005.0002.png
output.0014.0003.png
output.0099.0004.png
output.0167.0005.png
output.0199.0006.png
output.0278.0007.png
output.0455.0008.png
一如既往,非常感谢您的帮助!