Shift-jis から UTF-8 への変換 シェルスクリプトメモ(4)

Cygwin 環境で書いたデータを coLinux に移したら、案の定文字化けしたので、任意のディレクトリの全ファイルの文字コードUTF-8 にする簡単なシェルスクリプトを書いた。


入力ファイルの文字コードは指定してないので、ISO-2022-JP, SHIFT-JIS, EUC のいずれの場合でも自動認識してくれるはず。

#!/bin/sh

# 引数で指定されたディレクトリに移動。省略時はカレントディレクトリ。
# シェルスクリプト基本リファレンス p290 参照
cd "${1-.}"

for file in *
do
    if [ -d "$file" ]; then
        continue
    fi
    cp -p "$file" "$file".tmp

    # Lu: 改行コードをLFに変換 w: UTF-8 に変換
    nkf -Lu -d -w8 "$file".tmp > "$file"

    rm "$file".tmp
done