我有一组名为 img1.png 、 img2.png 、...img10.png 、.. 等的文件。我想要实现的是重命名这些文件,使起始索引增加 30,使文件变为 img31.png、img32.png、.....img40.png、....等等。这可以使用“重命名”命令吗?还是需要脚本?无论哪种情况,我该怎么做?
相关 - 为此,我是否必须先将文件重命名为 img001.png、img002.png、...img010.png 等等?如果需要,如何做到这一点?
我有一组名为 img1.png 、 img2.png 、...img10.png 、.. 等的文件。我想要实现的是重命名这些文件,使起始索引增加 30,使文件变为 img31.png、img32.png、.....img40.png、....等等。这可以使用“重命名”命令吗?还是需要脚本?无论哪种情况,我该怎么做?
相关 - 为此,我是否必须先将文件重命名为 img001.png、img002.png、...img010.png 等等?如果需要,如何做到这一点?
每个文件名中的数字加 30
rename 's/(\d+)/$1+30/e' *png
重命名为 3 位数长
rename 's/(\d+)/sprintf("%03d",$1)/e' *png
有关其工作原理的详细信息,请参见 perldoc perlre http://perldoc.perl.org/perlre.html,rename 是一个 perl 程序
LOCATION=/my/image/directory #change this to your location
for file in $(ls -1 ${LOCATION})
do
ind=$(echo ${file}|cut -c 4-|cut -d"." -f1)
(( newind=${ind}+30 ))
mv ${LOCATION}/${file} ${LOCATION}/img${newind}.png
done
我确信使用 awk/sed/perl 等在一行上执行此操作有更优雅的方法,但这向您展示了它背后的逻辑。
希望能帮助到你