您好,登錄后才能下訂單哦!
小編給大家分享一下Shell命令行批量處理圖片文件名的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Shell 命令行批量處理圖片文件名
前言:
從網上下載了一堆圖片,有的是*.jpg的,有的是*.jpeg的。并且文件名有長有短,很是糟心。因此,我想把這些文件給全部整理好,當然是用shell來處理啦!
循環所有文件
首先,我把所有的亂七八糟的圖片,全部放在 ./image/ 這個文件夾下面。
然后在外層寫一個i.sh的shell文件,錄入下面的內容。
我的文件結構演示如下:
文件 |
---|
image/xxx.jpg |
image/xxx.jpeg |
i.sh |
for f in $(find ./image -iname "*.*"); do echo $f done
然后執行 sh i.sh 命令,順利在命令行里面輸出了所有的圖片文件。
實現 i++ 數字效果
我想把圖片全部命名為 1.jpg 2.jpg 這樣的圖片文件,所以就需要一個類似于js的i++效果。
于是,把上面代碼修改為
# 搞一個i的變量 i=1 for f in $(find ./image -iname "*.*"); do ## 打印 i echo $i echo $f ## 計算i++ ((i++)) done
OK,已經順利的輸出了數字了。到這一步就很明顯的得到了我們想要的,下面只要把文件給復制一下就好了。
實現重命名效果
# 搞一個i的變量 i=1 mkdir img for f in $(find ./image -iname "*.*"); do cp $f ./img/$i.jpg ## 計算i++ ((i++)) done
好,如上,我們就將圖片全部根據數字重命名,并且放到了一個新的img文件夾中。我們想要的效果就實現了。
用MD5值命名圖片
突然想到,數字這東西不靠譜,下次不小心執行了,很容易把圖片給搞亂掉,還是MD5值靠譜,并且注意,還能過濾同樣的圖片。
嗯,理想很豐滿,我們來看看。
md5 -q $file
可以輸出文件的MD5計算值。就用這個了。改造上面代碼如下:
mkdir img for f in $(find ./image -iname "*.*"); do # 計算MD5值,并賦予一個變量 a=$(md5 -q $f) # 復制文件 cp $f ./img/$a.jpg done
我是想拿這一堆文件重復實現,所以用復制,如果不需要這樣考慮,完全可以使用mv重命名,代碼如下:
mkdir img for f in $(find ./image -iname "*.*"); do # 計算MD5值,并賦予一個變量 a=$(md5 -q $f) # 復制文件 mv $f ./image/$a.jpg done
以上是“Shell命令行批量處理圖片文件名的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。