utf8をshiftjisにフォルダごと一括変換 [unixコマンド]
ディレクトリcell以下を一括変換してcell_newにする場合。$ sudo apt-get install nkf $ ls cell
まず全部のコピーをとる(ディレクトリ構成をコピーするため)$ cp -a cell/ cell_new
変換用スクリプトrun.shを作成。$
find cell -type f \( -name '*.cgi' -or -name '*.pl' \) -printf 'nkf -w -s -Lw %p > cell_new/%P\n' > run.sh ここでは拡張子cgi plに対して行っている。 nkfの引数は-wでutf8を想定させ、-sでshiftを出力し、-Lwでwindows改行に変更している。。 run.shを実行$ sh run.sh
文例 ・文字コード変換(JISコード/ISO-2022-JP)$ nkf -j --overwrite example.csv・文字コード変換(EUC-JP)
$ nkf -e --overwrite example.csv・文字コード変換(Shift-JIS)
$ nkf -s --overwrite example.csv・文字コード変換(UTF-8)
$ nkf -w --overwrite example.csv・ディレクトリ内txtファイル全てを、文字コード→UTF-8、改行→unix形式(LF)に変換
$ nkf -w Lu --overwrite *.txt・ディレクトリ内txtファイル全てを、文字コード→Shift_JIS、改行→windows形式(CRLF)に変換
$ nkf -s Lw --overwrite *.txt失敗例
$ nkf -w example.csv > example.csv