我的系统文件格式如下
image0.jpg
image1.jpg
image2.jpg
image3.jpg
.
.
.
.
.
image10.jpg
image11.jpg
我可以使用下面的脚本
订购文件for i in *.jpg; do
new=$(printf "xome%04d.jpg" "$a") #04 pad to length of 4
mv -- "$i" "$new"
let a=a+1
done
但是会发生什么呢?它按照此顺序获取文件,如image0.jpg,image10.jpg,image1.jpg,image11.jpg,image2.jpg..............
如何使用shell脚本获取序列
答案 0 :(得分:0)
试试这个:
for i in {1..11}; do
printf -v newfile "xome%04d.jpg" "$i"
[ -f "image${i}" ] && mv "image${i}.jpg" "$newfile"
done
-v
选项将printf
结果存储在变量newfile
中。
[ -f "image${i}" ]
在尝试重命名之前测试文件是否存在。