nkfによる文字エンコーディング・改行コードのディレクトリ再帰的な一括変換

GNOME Terminal

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などでさらに変換対象を絞ることも可能だ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です