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

おすすめ

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください