nkfコマンドで文字コード変換 macOS/Linux/Unix

はじめに
macOSでShift-JISのテキストファイルをUTF-8へ変更するため、シェルコマンド
nkf
を使ったときのメモになります。
文字コードを変えるソフトは nkf
の他にも
iconv
が存在します。ですが iconv
ですとテキストファイルが何の文字コードを使っているか調べられないため、nkf
を使ったほうが便利です。
ここでは nkf
コマンドの簡単な使い方を解説していきます。
nkfのインストール
macOSに nkf
をインストールしましょう。
$ brew install nkf
インストールしたら nkf
コマンドが使えるかどうかチェックしましょう。
$ nkf -v
Network Kanji Filter Version 2.1.5 (2018-12-15)
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).
Copyright (C) 1996-2018, The nkf Project.
(へー、富士通が開発なさったんですねー)
文字コードを調べる
文字コードを調べるには -g
または
--guess
オプションを付与します。
こんな感じで文字コードが調べられます。
$ nkf -g data.csv
UTF-8
文字コード変換オプション
次に文字コード変換オプションを説明します。 大文字が入力の文字コードで、小文字が出力の文字コードを表します。
オプション(入力) | オプション(出力) | 意味 |
---|---|---|
-S | -s | Shift-JIS |
-E | -e | EUC-JP |
-W | -w | UTF-8 |
-W16 | -w16 | UTF-16 |
Shift-JISをUTF-8へ変換する
Shift-JISのテキストファイルをUTF-8へ変換してみます。
UTF-8に変換して上書き保存
$ nkf -w --overwrite data.csv
どうも入力の文字コードの指定はいらないみたいです。 自動で判別してくれてるようですねぇ。これは便利!
別名で保存
別名で保存したいときは次のようにすればOKです。
$ nkf -s data.csv > data_jis.csv
簡単ですね!
catコマンドと組み合わせて、ファイルを上書きせずに表示する
次は、UTF-16のテキストデータをコンソールに出力する例です:
$ cat data_utf16.txt|cat -W16
これで文字化けせずに中身を確認できるようになりました。
さらに詳しくは $ man nkf
でお調べください。
関連記事
- iconvコマンドでエンコーディング変換 macOS/Linux/Unix
- macOSで学ぶfind・grepの基本テクニック・実用例
- less|シェル
- ls・tree・sort・uniq コマンドの使い方
- cal でカレンダー祝日表示|シェル