hans

hans

【Shell】將某個目錄下的所有文件重新命名為五位數字,並以0進行補全。


剛接觸 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;

如果大家有好的方法希望能評論分享一下。感謝感謝!

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。