在Linuxl底下有個好用的轉編碼的小工具 - iconv
不過,這個iconv只能拿來轉單一個檔案,並不能直接指定一個資料夾下去遞迴轉換。所有當有大量的檔案需要轉編碼時,就變得有點麻煩了。還好Linux強大的shell指令,可以幫忙解決這個問題,而解決的曙光就來自於find!
find -type f -exec iconv --verbose -f BIG-5 -t UTF-8 {} -o {}.result \; \
-exec mv {} {}.bak \; \
-exec mv {}.result {} \;
以上這段指令分三個階段執行,
將目前所在的資料夾的檔案找出,丟給iconv執行轉碼,先將結果暫存至{原檔名}.result
將原本的檔案,改名為{原檔名}.bak
再將剛暫存的{原檔名}.result,改名稱{原檔名}
iconv的簡介
-l 列出所有支援的編碼格式
-f 要轉換的來源編碼
-t 要轉換的結果編碼
-o 輸出結果的檔案
--verbose 列出處理的檔案名稱
find的簡介
-type [option] 想找出的檔案類型
f : 正規的檔案
d : 資料夾
l :象徵連結
b : 區塊裝置
p :具名管線
c :字元裝置
s :Socket
-exec [command] 執行指定的command
所有在exec之後的參數,都會被當成是該command的參數,直到 '\;' 符號出現為止
正在處理的檔案名稱,以'{}'取代
-print 印出正在處理的檔名
轉貼於
http://falldog7.blogspot.com/2007/11/linux-iconv.html
傳承部落格 | 硬碟諮詢 | 重灌組裝 | 傳承即時留言版 | 線上MSN
傳承科技專門處理硬碟資料遺失,硬碟壞軌及異聲
各式隨身碟資料搶救,不過電及各種記憶卡如SD、MS、XD、CF
精通各種筆電改裝作業系統、MAC APPLE、LINUX、WINXP、VISTA
精緻服務盡在傳承 專業服務快速完工
1003 07/07 希捷Barracuda 7200.11全系列機瘟硬碟,傳承可處理
0925 突破!北京台商研發新隨身碟 插上電腦就可看臺灣頻道
0918 MSN霸道!強制更新9.0版本 剝奪舊版用戶登錄權
0907 告別硬碟 GDrive個資保密引疑慮
0906 為防止Downadup疫情擴大插入隨身碟請暫停使用「自動播放」功能
0903 兩倍牧場容量「2TB」硬碟一顆要8999元
傳承科技專門處理硬碟資料遺失,硬碟壞軌及異聲
各式隨身碟資料搶救,不過電及各種記憶卡如SD、MS、XD、CF
精通各種筆電改裝作業系統、MAC APPLE、LINUX、WINXP、VISTA
精緻服務盡在傳承 專業服務快速完工
1003 07/07 希捷Barracuda 7200.11全系列機瘟硬碟,傳承可處理
0925 突破!北京台商研發新隨身碟 插上電腦就可看臺灣頻道
0918 MSN霸道!強制更新9.0版本 剝奪舊版用戶登錄權
0907 告別硬碟 GDrive個資保密引疑慮
0906 為防止Downadup疫情擴大插入隨身碟請暫停使用「自動播放」功能
0903 兩倍牧場容量「2TB」硬碟一顆要8999元
首頁 -> [linux]關於iconv的轉碼功能介紹
2008年4月8日 星期二
[linux]關於iconv的轉碼功能介紹
訂閱:
張貼留言 (Atom)
0 回應:
張貼留言