[問題]請問用iconv 轉一整個目錄的檔案

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

[問題]請問用iconv 轉一整個目錄的檔案

文章andy » 週四 9月 02, 2004 3:44 pm

想把自己寫的一大堆原本big5編碼的網站轉成utf8;
目標是
1.可以轉換一整個目錄
2.轉好的檔案和目錄依原結構放在另一個目錄
3.可以辨識指定的文字檔,像是.html,.php,css,js.....
4.其他類型的檔案就不用轉換,直接複製,像是.jpg,gif.....

目前前兩點已經可以了,但是小弟shell script不熟,第三和第四就還想不到方法.
另外就是新目錄的結構不理想,像這樣:
原來的網站: /home/user/public_html
不理想的結果: /home/user/utf8/home/user/public_html
想要做到的樣子: /home/user/utf8/public_html
請問要怎麼修改才能做到,或是有人已經寫好了的可以用的.
感謝大家.

代碼: 選擇全部
#!/bin/bash
dotrans(){
    echo -e "trans file from  $I to $rootdir$I\n"
    f=`iconv -f big5 -t utf8 $I > $rootdir$I`
}
makedir(){
    cd $I
    if !(test -d $rootdir/$I) then
        mkdir $rootdir/$I
    fi
    runrec
    cd ..
  }
runrec(){
echo -e "runrec: $rootdir\n"
 J=`pwd`
 for I in $J/* ; do
    if (test -f $I) then
       dotrans
    elif (test -d $I)  then
       makedir
    fi   
 done
                        

 rootdir=`pwd`/utf8 
if (test $# != 0) && (test -d $1) then
echo `pwd`
cd ./$1
echo `pwd`
    runrec
cd ..   
else
    echo -e "\a請輸入想轉換的目錄!"
    read dname
    ./kuodo $dname
fi

echo "ok!"
exit 0
andy
可愛的小學生
可愛的小學生
 
文章: 44
註冊時間: 週二 3月 25, 2003 4:50 am

Re: [問題]請問用iconv 轉一整個目錄的檔案

文章Tetralet » 週四 9月 02, 2004 5:09 pm

andy 寫:1.可以轉換一整個目錄
2.轉好的檔案和目錄依原結構放在另一個目錄

用 cp -a 指令?

andy 寫:3.可以辨識指定的文字檔,像是.html,.php,css,js.....
4.其他類型的檔案就不用轉換,直接複製,像是.jpg,gif.....

利用副檔名來辨識?

像是...
代碼: 選擇全部
GetFile=`find -type f -name "*.html" -print`
for FileName in $GetFile ; do
    ...
done

注意,
若檔名中含有空白或是特殊字元,
可能要加以特殊處理,
否則可能會出現無法預期的狀況...
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm


回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客