文字コード一括変換@Linux

最近のLinuxはUTF8が標準になっていますが、ちょっと昔のファイルはEUCだったりします。UTF8に変換したい場合、一つずつ変換してもいいですが、大量ファイルがあると面倒なので、一括で変換する方法です。

nkf編

$ mkdir utf8
$ for i in `ls -I utf8`; do  echo $i; nkf -d -w80 $i > utf8/$i ; done

nkf :
-d : LF(UNIX)に変換
-w80 : UTF8に変換

ls :
-I utf8 : utf8というファイル名やディレクトリ名を出力しない

iconv編

iconvはうまく変換できずにエラーになる場合があるようです。
また、改行コードは変換できません。

$ mkdir utf8
$ for i in `ls -I utf8`; do  echo $i; iconv -f EUC-JP -t UTF9 $i > utf8/$i ; done

iconv :
-f インプットファイルのコード
-t アウトプットのコード

タイトルとURLをコピーしました