1

我有一组名为 img1.png 、 img2.png 、...img10.png 、.. 等的文件。我想要实现的是重命名这些文件,使起始索引增加 30,使文件变为 img31.png、img32.png、.....img40.png、....等等。这可以使用“重命名”命令吗?还是需要脚本?无论哪种情况,我该怎么做?

相关 - 为此,我是否必须先将文件重命名为 img001.png、img002.png、...img010.png 等等?如果需要,如何做到这一点?

4

2 回答 2

2

每个文件名中的数字加 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 程序

于 2013-05-13T19:24:47.850 回答
-1
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 等在一行上执行此操作有更优雅的方法,但这向您展示了它背后的逻辑。

希望能帮助到你

于 2013-05-13T19:24:34.493 回答