ディレクトリ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
みたいに変えて同じようにやる。