Ubuntu下將GBK文件轉換爲UTF8文件

在windows下編輯的代碼拿到Linux下不能用,原因時Windows下都是GBK編碼,而Linux下中文會出現亂碼情況。

勉強寫了一個腳本,但只能改變當前目錄下的文件,還不能嵌套改變下層文件夾裏面的文件。還有如果已經有存在UTF-8編碼的文件,裏面又恰好有中文,會出現錯誤的。。。先記着,以後再改進吧

#!/bin/bash
#GBK2UTF-8

function convert() {
    for file in `ls $1`
    do
        if test ! -x $file
        then
            iconv -f GBK -t UTF-8 $file > $file.bak
            #rm $file
            echo remove old $file...
            #echo $file.bak
            string_len=`echo "$file.bak" | wc -m`
            string_len=$[$string_len-5]
            #echo $string_len
            filename=`echo $file.bak | cut -c1-$string_len`
            echo copy to new file: $filename
            mv $file.bak $filename
        fi
    done
}

convert

另外,還寫了單獨改一個文件的腳本,也還可以優化,以後多學學shell

#!/bin/bash
#one file GBK2UTF-8

echo "Please input filaname:"
read file
iconv -f GBK -t UTF-8 $file > $file.bak
rm $file
mv $file.bak $file


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章