作者NoCanDo (沒法度)
看板Linux
標題[問題] 寫一隻sh轉換圖片
時間Thu Aug 26 23:00:57 2010
因為mogrify好像沒有遞迴子資料夾的功能
所以我拿某人寫的sh改寫來用
有幾個問題想解決:
1、遇上檔名有空格的資料夾就會失效。
2、要怎寫才能增加轉換的格式? (例如:png、bmp、gif > jpg )
3、遇上格式大小寫也會失效? (png?PNG?)
#!/bin/bash
function START()
{
for fileName in `ls -F | grep '.JPG'` #找尋資料夾內所有的PNG圖檔
do
echo ' Converting: "'$fileName'"...'; #輸出轉換中訊息
mogrify -resize 1280X1024 "${fileName%.JPG}.jpg"; #轉換指令
done;
for folderName in `ls -F | grep '/'` #深入子目錄
do
folderName=${folderName%/*}; #稍微修正目錄表示方式,顯示比較美觀
echo ' Into: "'$folderName'".'; #輸出訊息
cd "$folderName"; #移動至該目錄
START; #遞迴呼叫
cd ..; #子目錄完畢後回原目錄
done;
}
read -p 'Please pick a DIR:' dir; #輸入要進行作業的資料夾名稱
cd "$dir"; #切換到下層目錄
echo 'Here we go!'; #程序開始訊息
START; #執行遞迴函數
echo 'Done!'; #完成訊息
--
:「我叔叔以前有兼差做消波塊 <( ̄︶ ̄)> <( ̄︶ ̄)>
小時候我都稱那個做 "肉粽" ( ′-`)y-~ 」
鄉民a:「驚!」
鄉民b:「這個不能惹!」
鄉民c:「靠!比mini158還猛!」
摘錄自《 -快樂的童年》ψ
http://ncd-nocando.blogspot.com
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.47.193.6
→ benqm300:1.可以先把檔名做轉換,最後在轉回去。 08/27 00:03
→ benqm300:3.副檔名大小寫一律轉小寫,對檔案也沒影響 08/27 00:22
→ kdjf:改IFS ? 08/27 12:28
推 jlovet:mogrify不是可以一次轉很多檔案嘛,你這樣好像一次轉一個? 09/03 18:37