nkfによる文字エンコーディング・改行コードのディレクトリ再帰的な一括変換
nkfコマンドを使って現在ディレクトリ以下のファイルを指定した文字エンコーディング・改行コードに一括変換する方法を記す。
日本語のテキストファイルを扱っていると,Shift_JISやCP932,EUF-JPといった文字エンコーディングが混在していたり,改行コードにCR+LFが混ざっていたりして処理の問題となることがある。この問題を解消するために,ディレクトリを再帰して全ファイルを指定した文字エンコーディング・改行コードに変換する。
文字エンコーディングと改行コードの変換にはnkf
を使用する。以下に示す通りfind
コマンドで現在ディレクトリから再帰的にファイルを列挙してnkf
で変換する。最も汎用性が高いので,この方法がおそらくベストだ。
find . -type f -exec nkf -w -Lu --overwrite {} +
この例では,文字エンコーディング=UTF-8,改行コード=LFとなるようにnkf
の変換オプションを指定している。find
コマンドのオプションの-name
などでさらに変換対象を絞ることも可能だ。