
linux下用正则表达式批量重命名
两百张图片辊[1-200].jpg(前面两字乱码)现在需要按原顺序重命名为[001-200].jpg是用rename吧,用mv也行啦,求脚本(刚刚看完li...
两百张图片 辊[1-200].jpg (前面两字乱码)
现在需要按原顺序重命名为[001-200].jpg
是用rename吧,用mv也行啦,求脚本(刚刚看完linux入门课程,win下的脚本套还用不了。。。)
系统是Ubuntu 14.04 LTS,rename版本是perl版的。 展开
现在需要按原顺序重命名为[001-200].jpg
是用rename吧,用mv也行啦,求脚本(刚刚看完linux入门课程,win下的脚本套还用不了。。。)
系统是Ubuntu 14.04 LTS,rename版本是perl版的。 展开
1个回答
展开全部
先cd到放图片的文件夹,然后
rename "s/^[^\d]*//" *.jpg
这行命令的目的是把所有jpg后缀的文件名中,开头的非数字去掉,应该就能满足你的需要了吧
rename "s/^[^\d]*//" *.jpg
这行命令的目的是把所有jpg后缀的文件名中,开头的非数字去掉,应该就能满足你的需要了吧
更多追问追答
追问
需要以文件名顺序排序,所以[1-200].jpg 要改为[001-200].jpg
追答
那我确实不知道有没有单条命令能搞定的了,不过办法肯定是有的,写个bash脚本就行:
#!/bin/bash
if [ $# -eq 0 ]
then
echo "do not have src dir path"
exit 1
fi
src=$(echo $1 | sed "s/\/$//g")
ls $src | while read line
do
num=$(echo $line | grep "[0-9][0-9]*" -o)
num=$(printf "%03d" $num).jpg
#echo $src/$num
#echo $src/$line
mv $src/$line $src/$num
done
怎么执行你应该懂吧,参数就是文件夹,你试试看
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |