用于更改一组按顺序编号的文件的起始索引号的脚本或命令

时间:2013-05-13 19:12:57

标签: linux shell file-rename

我有一组名为img1.png,img2.png,... img10.png,...等文件。我想要实现的是重命名这些文件,使起始索引增加30,使文件成为img31.png,img32.png,..... img40.png,....等等。这是否可以使用“重命名”命令?或者是需要的脚本?在任何一种情况下,我该怎么做?

相关 - 为了这个工作,我必须先将文件重命名为img001.png,img002.png,... img010.png,依此类推?如果需要,该如何完成?

2 个答案:

答案 0 :(得分: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,重命名为perl程序

答案 1 :(得分:-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等在一行上有更优雅的方式,但这显示了它背后的逻辑。

希望有所帮助