【发布时间】:2012-02-21 09:23:30
【问题描述】:
一种不优雅、不灵活的做法是这样的:
for path in *.jpg # IMG_1067_CR2.jpg, MG_1068_CR2.jpg, etc.
do
mv "$path" "${index-0}.jpg"
let index+=1
done
unset index
一个更好的方法应该支持前导零(例如ffmpeg),避免使用虚拟变量污染环境,有一个空运行选项(例如rename),并且不应该要求指定两次扩展。现有工具是否支持此功能?
或者,我怎样才能让this solution 使用前导零:
rename -n 's/IMG_([0-9]*)\.jpg/$1/; $_="IMG_".($_-1067).".jpg"' *.jpg
【问题讨论】: