詳解Shell 命令行批量處理圖片文件名的實(shí)例
Shell 命令行批量處理圖片文件名
前言:
從網(wǎng)上下載了一堆圖片,有的是*.jpg的,有的是*.jpeg的。并且文件名有長有短,很是糟心。因此,我想把這些文件給全部整理好,當(dāng)然是用shell來處理啦!
說干就干。
循環(huán)所有文件
首先,我把所有的亂七八糟的圖片,全部放在 ./image/ 這個(gè)文件夾下面。
然后在外層寫一個(gè)i.sh的shell文件,錄入下面的內(nèi)容。
我的文件結(jié)構(gòu)演示如下:
文件 |
---|
image/xxx.jpg |
image/xxx.jpeg |
i.sh |
for f in $(find ./image -iname "*.*"); do echo $f done
然后執(zhí)行 sh i.sh 命令,順利在命令行里面輸出了所有的圖片文件。
實(shí)現(xiàn) i++ 數(shù)字效果
我想把圖片全部命名為 1.jpg 2.jpg 這樣的圖片文件,所以就需要一個(gè)類似于js的i++效果。
于是,把上面代碼修改為
# 搞一個(gè)i的變量 i=1 for f in $(find ./image -iname "*.*"); do ## 打印 i echo $i echo $f ## 計(jì)算i++ ((i++)) done
OK,已經(jīng)順利的輸出了數(shù)字了。到這一步就很明顯的得到了我們想要的,下面只要把文件給復(fù)制一下就好了。
實(shí)現(xiàn)重命名效果
# 搞一個(gè)i的變量 i=1 mkdir img for f in $(find ./image -iname "*.*"); do cp $f ./img/$i.jpg ## 計(jì)算i++ ((i++)) done
好,如上,我們就將圖片全部根據(jù)數(shù)字重命名,并且放到了一個(gè)新的img文件夾中。我們想要的效果就實(shí)現(xiàn)了。
用MD5值命名圖片
突然想到,數(shù)字這東西不靠譜,下次不小心執(zhí)行了,很容易把圖片給搞亂掉,還是MD5值靠譜,并且注意,還能過濾同樣的圖片。
嗯,理想很豐滿,我們來看看。
md5 -q $file
可以輸出文件的MD5計(jì)算值。就用這個(gè)了。改造上面代碼如下:
mkdir img for f in $(find ./image -iname "*.*"); do # 計(jì)算MD5值,并賦予一個(gè)變量 a=$(md5 -q $f) # 復(fù)制文件 cp $f ./img/$a.jpg done
我是想拿這一堆文件重復(fù)實(shí)現(xiàn),所以用復(fù)制,如果不需要這樣考慮,完全可以使用mv重命名,代碼如下:
mkdir img for f in $(find ./image -iname "*.*"); do # 計(jì)算MD5值,并賦予一個(gè)變量 a=$(md5 -q $f) # 復(fù)制文件 mv $f ./image/$a.jpg done
以上所有命令均基于MAC系統(tǒng)運(yùn)行。如果是Linux 可能有細(xì)微差異。
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Shell腳本實(shí)現(xiàn)ftok函數(shù)
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)ftok函數(shù),ftok函數(shù)是操作系統(tǒng)底層中很有名的一個(gè)函數(shù),本文講在Shell中如何實(shí)現(xiàn)同樣算法的函數(shù),需要的朋友可以參考下2015-01-01使用Linux shell腳本實(shí)現(xiàn)FTP定時(shí)執(zhí)行批量下載指定文件
使用FTP定時(shí)批量下載指定文件的shell腳本,具體實(shí)例介紹如下所示,需要的朋友參考下吧2017-04-04Shell腳本對文件中的行、單詞、字符進(jìn)行迭代輸出示例
這篇文章主要介紹了Shell腳本對文件中的行、單詞、字符進(jìn)行迭代輸出示例,本文講解了迭代文件中的每一行、迭代一行中的每一個(gè)單詞、迭代一個(gè)單詞中的每一個(gè)字符等內(nèi)容,需要的朋友可以參考下2014-11-11Linux Shell+Curl網(wǎng)站健康狀態(tài)檢查腳本,抓出中國博客聯(lián)盟失聯(lián)站點(diǎn)
這篇文章主要介紹了Shell+Curl網(wǎng)站健康狀態(tài)檢查腳本,抓出中國博客聯(lián)盟失聯(lián)站點(diǎn),需要的朋友可以參考下2016-02-02