ubuntu nkfで文字コード一括変換
Shift-JISからUTF-8へ
Windowsは文字コードがShift-JISなので、そのファイルをUbuntu(Lubuntu)で扱うにはUTF-8に変換する必要がある。エディタで1ファイルごとに変換することもできるが、大量にあると面倒ないので、コマンドで一括変換させてみる。 nkfをインストール Lubuntuには標準でiconvというコマンドが用意されていて、これで文字コード変換できるのだが、上書きが簡単にできなかったりと、何かと不自由なので、nkfという文字コード変換ソフトをターミナルから以下のコマンドを打ってインストール。 sudo apt-get install nkf これでnkfが使えるようになる。 nkf単体で変換 主なオプションは以下。 -e : EUCに変換 -w : UTF-8に変換 -s : Shift-JISに変換 -Lu : 改行コードLF(UNIX)に変換 -Lw : 改行コードCR+LF(Windows)に変換 -Lm : 改行コードCR(Macintosh)に変換 --overwrite: 上書き -g : 文字コードを出力 ファイルを調べるときに使う 以下のコマンドは、カレントディレクトリで、ファイル名に.txtがあるファイルを一括してEUC変換。上書きするように指定している。 nkf -w -Lu --overwrite *.txt findコマンドと組み合わせてディレクトリ配下一括変換 ディレクトリ配下のすべてのtxtを変換するにはfindコマンドと組み合わせるなどの工夫が必要。 find . -name '*.txt' | xargs -n 20 nkf -w -Lu --overwrite 内容はfindで.txtが含まれたファイルを探し、結果をxargsに渡し、そしてnkfで文字コードを変換している。 さらに複数の種類のファイルを同時に変換するには-oオプションを使う。 find . -name '*.c' -o -name '*.h' | xargs -n 20 nkf -w -Lu --overwrite 内容はカレントディレクトリ配下の.cと.hのファイルを一括してUTF-8の文字コ