我有一组名为img1.png,img2.png,... img10.png,...等文件。我想要实现的是重命名这些文件,使起始索引增加30,使文件成为img31.png,img32.png,..... img40.png,....等等。这是否可以使用“重命名”命令?或者是需要的脚本?在任何一种情况下,我该怎么做?
相关 - 为了这个工作,我必须先将文件重命名为img001.png,img002.png,... img010.png,依此类推?如果需要,该如何完成?
答案 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等在一行上有更优雅的方式,但这显示了它背后的逻辑。
希望有所帮助