nkfコマンドとは
「nkf」は「Network Kanji Filter」の略で、LinuxとWindowsなど、異なるOS間でテキストデータを交換する際に問題となる文字コードと改行コードを変換するためのコマンド
オプションを指定することで、任意の文字コード、改行コードに変換することが出来ます。
オプション指定をしないで実行すると文字コードを「JIS」に変換します。
*改行コードは変換されません。
構文
nkf [オプション] [ファイル]
nkf [オプション] --overwrite ファイル(省略可)
オプション
文字コード関係
オプション | 説明 |
---|---|
-j | JISコードを出力する |
-e | EUCコードを出力する |
-s | Shift_JISコードを出力する |
-w | UTF-8コードを出力する |
-- overwrite | ファイルを変換して上書きする |
-- guess | 使用されている文字コードと改行コードの判定結果を表示 |
改行コード関係
オプション | 説明 |
---|---|
-d | 改行をLFにする(UNIX系) |
-c | 改行をCRLFにする(Windows系) |
-Lm | 改行をCRにする(OS Xより前のmac OS系) |
半角/全角関係
オプション | 説明 |
---|---|
-X | 半角カナ(JIS X 0201 片仮名)を全角カナ(JIS X 0208 片仮名)へ変換する |
-x | 半角カナを保存する(通常は全角カナへの変換を行う) |
-Z | 全角を半角にする(JIS X 0208英数字と若干の記号をASCIIに変換する)。「-Z1」はJIS X 0208 和字間隔をASCIIスペース1つに変換。「-Z2」はASCIIスペース2つに変換。「-Z3」は「>」「<」「”」「&」を、それぞれ「>」「<」「"」「&」に変換する |
その他の整形
オプション | 説明 |
---|---|
-f 文字数 | 1行の文字数を指定して簡単な整形を行う(「-f」のみの場合は60桁) |
--hiragana | ひらがなで出力する |
--katakana | カタカナで出力する |
*オプションは他にもたくさんあります。確認次第、随時更新していく予定です。
実際に使ってみる
nkfは「nkf ファイル名」で指定したファイル、または標準入力から受け取った内容を変換して標準出力に書き出します。
例
cat 元ファイル | nkf -ec > 保存ファイル名
nkf -ec 元ファイル > 保存ファイル名
上記例では文字コードと変換コードを変換し、新たにファイルを作成して保存していますが、
--overwrite
オプションを使うことで、「元ファイル」に変換内容を上書きして保存することが出来ます。(新しいファイルを作らない)
例
cat 元ファイル | nkf -ec --overwrite
nkf -ec --orverwrite 元ファイル
--guess
オプションを使うことで、使用されている文字コードと改行コードの判定結果を表示することが出来ます。
例
nkf --guess 元ファイル
元ファイル:UTF-8(LF)
まとめ
- nkfコマンドは文字コードと改行コードを変換することが出来る。
- 半角/全角関係の変換やひらがなで出力したりできるオプションが存在する。
- --guessオプションを使うことで、使用されている文字コードと改行コードの判定結果を表示することができる。
- デフォルトの出力はJISコードで、改行コードは変換されない。