ファイルの一括文字コード変換

2011.03.28 1:15
 数百数千あるファイルを一括文字コード変換したい時に使うコマンド。(私はzen-cart-v1.3.0.2-l10n-jp-6がEUC-JPであることが気に入らなくてUTF-8に一括変換
find . -type f | xargs -n 10 nkf -w --overwrite
 find でカレントディレクトリ内のファイルをすべて拾って(-type f)、そのファイルリストをxargsに渡します。-n 10のところでファイルリストを一度に渡す数を調整します。膨大な量が予想される場合は-n 50とかにするとよいです。それからnkfに渡して-wでutf-8に文字コード変換。変換後はそのまま上書きしてしまって--overwriteしてしまいます。殆ど失敗しないので大丈夫。(ですが、コピーしておいた方がいいかもです。)
 
オプション意味
-eEUC に変換
-sSJIS に変換
-wUTF-8 に変換
-jJIS に変換
-LuUNIX 改行コード (LF) へ変換
-LwWindows 改行コード (CR+LF) へ変換
-Lm(Macintosh 改行コード (CR) へ変換)
--overwriteファイルを上書き

-Lmは殆ど使わない。-wLuが一番よく使う感じでしょうか。

 文字コードの変換後は、nkfでもってきちんと文字コード変換できたか確認します。(結構ちゃんとできてる。)ちなみに英数字のみのファイルはASCIIとなってしまうのでご注意。日本語が混じっているファイルで確認してください。
nkf -g xxxx.php
とかこんな感じです。






プロフィール



  • Name :: 山上オサム ♂(39)
  • Hobby :: 武術
  • Work :: Web Designer