剛接觸 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;
如果大家有好的方法希望能評論分享一下。感謝感謝!