系統公告
個人檔案
個人圖檔
ID:kenshinn
暱稱:子凌
地區:桃園縣

文章分類
Google Ads
kenshinn的最新的回應
好時光貼曆
人氣指數
當日人次:
累積人次:
我推薦誰
目前無名單
誰推薦我
誰來我家
搜尋欄位
搜尋:
RSS 訂閱
RSS2
ATOM
贊助商
其它資訊
本部落所刊登之內容,皆由作者個人所提供,不代表 yam天空部落 本身立場。
POWERED BY
POWERED BY
會員登入免費註冊
November 14, 2005

有時候抓下來的東西解開來是簡體字的
一個一個改成繁體字很麻煩
筆者自己寫了這樣一個shell script

11/14修改後,加入了-r 選項
可以遞迴處理

gbtobig5

#!/bin/sh
r=0
function myhelp() {
echo Usage: gbtobig5 [-r] FILE
echo rename the gbcode filename to big5code filename
echo
echo   -r, --recursive     rename the contents of directories recursively
echo   -h, --help          show this help page
echo
echo
echo   auther:   kenshinn, taiwan
echo   webpage:  http://www.wretch.cc/blog/kenshinn
echo   E-mail:   kenshinnn@gmail.com
echo   Msn:      kenshinnkimo@msn.com
echo
exit
}
function ren() {
i=$1
j=`echo $i|iconv -c -f utf8 -t gb2312 | iconv -c -f gb2312 -t big5 | iconv -c -f big5 -t utf8`
if [ $i = $j ] ; then return ; fi
echo `pwd`\/$i rename to `pwd`\/$j
mv $i $j
}
function dr() {
for i in $@ ; do
if [ -d $i ] && [ $r = 1 ] ; then cd $i ; dr * ; fi
if [ -e $i ] ; then ren $i ; fi
done
}

IFS=""
for c in $@ ; do
if [ $c = -h ] || [ $c = --help ]  ; then myhelp ; fi
if [ $c = -r ] || [ $c = --recursive ] ; then r=1 ; continue ; fi
done
dr $@


執行gbtobig5 *
就會把* 簡轉繁
執行 gbtobig5 -r *
會遞迴處理所有檔案及目錄  












引用 (你可以針對此文寫一篇屬於自己的blog/想法,並給作者一個通告)
引用
相關閱讀
留言 (1筆) (登入後, 即可開始發表留言)
1.
您好,
十分有用, 感謝。
不過在第30行
if [ -d $i ] && [ $r = 1 ] ; then cd $i ; dr * ; fi

應該要改成
if [ -d $i ] && [ $r = 1 ] ; then cd $i ; dr * ; cd .. ; fi

才能作到真正的遞迴。

 
jeph945 2008-06-14 15:46:22 留言 |