nkf コマンド 2016/11/24
文字コードを変換するツール。
標準入力を文字コードを変換しながらそのまま標準出力に吐き出す。引数にファイル名を指定すれば、標準入力ではなくそのファイルを読み込む。
例えば EUC-JP を UTF-8 に変換するには
$ cat ファイル名 | nkf -Ew
または
$ nkf -Ew ファイル名
nkf は Network Kanji Filter の意味らしい。
インストール 2016/05/02
Ubuntu, CentOSではnkfというパッケージに入っている。(Ubuntu 15.10, 15.10, CentOS 6.4, 7.2 で確認)
$ sudo yum install nkf
## または
$ sudo apt-get install nkf
オプション 2014/12/29
文字コードの指定 2014/12/29
以下のオプションで、大文字が入力の文字コード、小文字が出力の文字コードを表す。
-J
,-j
- ISO-2022-JP (ISO-2022-JP の J と覚える)
-S
,-s
- Shift-JIS (Shift-JIS の S と覚える)
-E
,-e
- EUC-JP (EUC-JP の E と覚える)
-W
,-w
- UTF-8。(由来はよくわからないがworldwideな文字コードと覚えている)
改行コード 2015/10/15
-Lu
- 改行コードをLF(0x0A)(Unixでよくある形式)に変換
-Lw
- 改行コードをCR+LF(0x0D 0x0A)(Windowsでよくある形式に変換
-Lm
- 改行コードをCR(0x0D)(Macでかつてよくあった形式に変換
その他 2016/11/24
-x
- 半角カナを半角のままにする。このオプションを付けないと全角に変換される
-g
または--guess
- 変換するのではなく、文字コードを推定する
--overwrite
- 変換した結果を標準出力するのではなく、元ファイルを上書きする。 入力は標準入力からではなく、ファイル名で与える必要がある。
HOWTO
文字コードを調べるには 2015/10/15
文字コードが不明で、判別させるには、-g
または --guess
を使う。ついでに改行コードも判別してくれる。
nkf --guess foo.txt
# パイプでの使用例
cat foo.txt | nkf --guess
BASE64のエンコード・デコードをするには 2014/10/04
nkf
コマンドでもBASE64ができるみたいで、base64
コマンドのページ参照。ただ、base64
コマンドのほうが多くの環境に入っているので、
nkf
をわざわざ使う理由はないかもしれない。