WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

nkfコマンドでファイルの文字コードと改行コードを変更する

      2012/11/26

nkfコマンドの使い方

ファイルの文字コードを変換するにはnkfコマンドを利用します。

# yum -y install nkf     ※nkfがまだインストールされていない場合はインストール

主要なオプションは以下の通りです。

-j(省略可能) : JISコード(ISO-2022-JP)を出力
-e           : EUCコードを出力
-s           : Shift-JISコードを出力
-w           : UTF-8コードを出力(BOM無し)
-Lu          : unix改行形式(LF)に変換
-Lw          : windows改行形式(CRLF)に変換
-Lm          : macintosh改行形式(CR)に変換
-g(--guess)  : 自動判別の結果を表示
--overwrite  : 引数のファイルに直接上書き
--version    : バージョン情報を表示(インストール済チェック)

ファイルの文字コードを判別する

-gオプションをつけてファイル名を指定すると、文字コード自動判別の結果が出力されます。

# nkf -g hoge.txt
EUC-JP

既存のファイルの文字コードを変更する

–overwriteオプションで既存のファイルをそのまま上書きして文字コードを変更できます。下記はEUC-JPのファイルをUTF-8に変更する例です。

# nkf -w --overwrite hoge.txt
# nkf -g hoge.txt
UTF-8

既存のファイルの改行コードを変更する

“-L”オプションを付けて,続いて”u”を付けた場合は改行コードを”LF”に変更できます。同様に”w”は”CR+LF”,”m”は”CR”に変換します。
下記コマンドを実行するとファイル”hoge.txt”の改行コードが”LF”に変換されます。

# nkf -Lu --overwrite hoge.txt

ディレクトリ内のすべてのファイルの文字コード・改行コードを変更

ディレクトリ内の拡張子が”txt”のすべてのファイルの文字コードを”UTF-8″に、改行コードは”LF”にそれぞれ変換する場合は下記コマンドを実行します。

# nkf -wLu --overwrite *.txt

 - Linux , ,