佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 詳解Shell 命令行批量處理圖片文件名的實例

詳解Shell 命令行批量處理圖片文件名的實例

熱門標簽:網(wǎng)站排名優(yōu)化 AI電銷 百度競價排名 服務(wù)外包 鐵路電話系統(tǒng) Linux服務(wù)器 地方門戶網(wǎng)站 呼叫中心市場需求

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ù)字了。到這一步就很明顯的得到了我們想要的,下面只要把文件給復(fù)制一下就好了。

實現(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)
 # 復(fù)制文件
 cp $f ./img/$a.jpg
done

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

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

以上所有命令均基于MAC系統(tǒng)運行。如果是Linux 可能有細微差異。

 如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • shell中如何批量注釋和取消注釋
  • shell腳本實現(xiàn)統(tǒng)計文件大小、批量創(chuàng)建用戶的示例
  • shell腳本批量復(fù)制及執(zhí)行命令的示例詳解
  • 使用Shell腳本批量啟停Docker服務(wù)
  • shell腳本實現(xiàn)ssh-copy-id批量自動發(fā)送公鑰到遠程主機
  • shell腳本批量刪除es索引的方法
  • shell批量curl接口腳本的簡單實現(xiàn)方法
  • 如何使用shell在多服務(wù)器上批量操作

標簽:銅川 崇左 蘭州 湘潭 黃山 衡水 湖南 仙桃

巨人網(wǎng)絡(luò)通訊聲明:本文標題《詳解Shell 命令行批量處理圖片文件名的實例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    南充市| 鄂州市| 淄博市| 洛扎县| 合山市| 遂川县| 大足县| 安龙县| 衢州市| 高台县| 宝兴县| 阳春市| 临泉县| 柳江县| 佛学| 利辛县| 沙河市| 闽清县| 凤山县| 乌兰县| 沧州市| 尤溪县| 辰溪县| 屯昌县| 隆子县| 江达县| 沙田区| 武隆县| 屏南县| 丹东市| 涿鹿县| 安龙县| 岳阳市| 乌拉特前旗| 苍山县| 新乡市| 温宿县| 伊川县| 杭州市| 上林县| 北京市|