Shell命令行批量處理圖片文件名的示例分析-創(chuàng)新互聯(lián)

小編給大家分享一下Shell命令行批量處理圖片文件名的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的丹東網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

Shell 命令行批量處理圖片文件名

前言:

從網(wǎng)上下載了一堆圖片,有的是*.jpg的,有的是*.jpeg的。并且文件名有長有短,很是糟心。因此,我想把這些文件給全部整理好,當然是用shell來處理啦!

循環(huán)所有文件

首先,我把所有的亂七八糟的圖片,全部放在 ./image/ 這個文件夾下面。


然后在外層寫一個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 命令,順利在命令行里面輸出了所有的圖片文件。

實現(xiàn) i++ 數(shù)字效果

我想把圖片全部命名為 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,已經(jīng)順利的輸出了數(shù)字了。到這一步就很明顯的得到了我們想要的,下面只要把文件給復制一下就好了。

實現(xiàn)重命名效果

# 搞一個i的變量
i=1
mkdir img
for f in $(find ./image -iname "*.*"); do
 cp $f ./img/$i.jpg
 ## 計算i++
 ((i++))
done

好,如上,我們就將圖片全部根據(jù)數(shù)字重命名,并且放到了一個新的img文件夾中。我們想要的效果就實現(xiàn)了。

用MD5值命名圖片

突然想到,數(shù)字這東西不靠譜,下次不小心執(zhí)行了,很容易把圖片給搞亂掉,還是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

我是想拿這一堆文件重復實現(xiàn),所以用復制,如果不需要這樣考慮,完全可以使用mv重命名,代碼如下:

mkdir img
for f in $(find ./image -iname "*.*"); do
 # 計算MD5值,并賦予一個變量
 a=$(md5 -q $f)
 # 復制文件
 mv $f ./image/$a.jpg
done

以上是“Shell命令行批量處理圖片文件名的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文題目:Shell命令行批量處理圖片文件名的示例分析-創(chuàng)新互聯(lián)
標題來源:http://muchs.cn/article20/ddhpco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站微信小程序網(wǎng)站設(shè)計公司、用戶體驗、ChatGPT、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)