刚接触 shell 时间太短,复杂的脚本写不出来。只能用一些简单的凑合一下,能实现我想要的功能就好。慢慢学!
这个脚本的功能大概是这样的,先进入一个目录,在该目录下还有很多子目录,再依次进入每个子目录,将子目录中的所有 jpg 图片重命名,格式为五位数字,0 补全。因为我实在没在网上找到直接输出五位数字的方法,所以就只好定义了一个 7 位数字 num,
结束重命名后将开头的 100 换成 0(我子目录下文件数量只有几千),这个可以各种举一反三的。
#!/bin/sh
cd train/
num=1000000
new=0
for dir_name in $(ls) #搜索子目录
do
l=1
if [ -d $dir_name ]; then
cd $dir_name/ #进入子目录
for img in $(ls)
do
let new=num+l
rename "s/$img/$new.jpg/" *
let l=l+1
done;
rename 's/^100/0/' *.jpg
cd ../
fi
done;
如果大家有好的方法希望能评论分享一下。感谢感谢!