findとnkfをつかって文字コードをShift_JISからutf-8へ一括変換

ディレクトリold以下を一括変換してnewにする場合。

$ls
old
$

まず全部のコピーをとる(ディレクトリ構成をコピーするため)
$ cp -a old/ new

変換用スクリプトrun.shを作成。
$ find old -type f \( -name '*.php' -or -name '*.c' -or -name '*.js' \) -printf 'nkf -S -w -Lu %p > new/%P\n' > run.sh

ここでは拡張子php c jsに対して行っている。

nkfの引数は-Sが入力をShift_JISを想定させ、-wでutf8を出力し、-LuでUnix改行に変更している。変換元がshift-jisでない場合はnkfの-Sを削除する。

run.shを実行してoldからnewへ変換する。

$ sh run.sh

html内ののcharset=…を変えたい場合は、findコマンドのnkfの部分を

sed s/charset=Shift_JIS/charset=utf-8/ %p > new2/%P\n

みたいに変えて同じようにやる。

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)