我刚刚从朋友那里得到了一些照片。输入:
'WhatsApp Image 2020-01-03 at 15.13.36.jpeg'
'WhatsApp Image 2020-01-03 at 15.13.37.jpeg'
'WhatsApp Image 2020-01-03 at 15.13.37 (1).jpeg'
'WhatsApp Image 2020-01-03 at 15.13.38.jpeg'
我想通过某种自动化来更改其名称。所以我知道当我写的时候:
for x in ./*.jpeg;do open $x;done
我可以打开同一目录中的所有文件。要更改其名称,我可以使用以下命令:
mv a.jpeg b.jpeg
所以我的问题是如何编写一个for循环,这样我不仅更改了名称,还增加了一些val编号:它必须看起来像:
i=1 && for x in ./*.jpeg;do mv ./$x ./$i.jpeg & i++; done
我不确定适当的语法是什么样。
输入:
'WhatsApp Image 2020-01-03 at 15.13.36.jpeg'
'WhatsApp Image 2020-01-03 at 15.13.37.jpeg'
'WhatsApp Image 2020-01-03 at 15.13.37 (1).jpeg'
'WhatsApp Image 2020-01-03 at 15.13.38.jpeg'
输出:
1.jpeg
2.jpeg
3.jpeg
4.jpeg
i=1; for x in *.jpeg; do mv -i "$x" "$((i++)).jpeg"; done
我的解决方案不是单一的衬板,但是可以使用oneliner制成。
x=0
for i in $(ls);
do mv $i ${i}_${x}
let "x+=1"
done
结果将是文件的原始名称,并在名称后加上_number。