nkfとは、ネットワークでメールやニュースの読み書きをするために作られた、漢字コードの変換フィルタです。
構文
基本的な構文は次のようになります。
$ nkf オプション [入力ファイル名] [> 出力ファイル名]
入力ファイル、出力ファイルはデフォルトではそれぞれ標準入力、標準出力になっています。
使用例
具体的な使用例としては以下のようになります。
ファイルに使われている文字コードのチェックを行います。
入力 $ nkf -g example.csv 出力 Shift_JIS
ファイルの文字コードを変換する際は次のように行います。
例えば、ファイルの文字コードをUTF-8に変換する場合だと
入力 $ nkf -w --overwrite example.csv 出力
これで変換が完了します。
-wオプションは入力をUTF-8に変換したもので出力する、というオプションです。
他にも-sオプションだとShift_JISに変換。-eオプションだとEUCコードに変換という意味を持っています。以下に、nkfの出力として指定できる文字コードのオプション一覧を示します。
-j JISコードを出力する。 -e EUCコードを出力する。 -s シフトJISコードを出力する。 -w -w8[0] -w16[BL][0] Unicode を出力する。 -w -w80 UTF8コードを出力する。(BOM無し) -w8 UTF8コードを出力する。 -w16 -w16B0 UTF16コードを出力する。(Big Endian / BOM無し) -w16B UTF16コードを出力する。(Big Endian / BOM有り) -w16L UTF16コードを出力す る。 (Little Endian / BOM有り) -w16L0 UTF16コードを出力する。(Little Endian / BOM無し)
overwriteオプションは元のファイルを変換してもので置き換える、というオプションです。したがって、上の例のコマンドはexample.csvをUTF-8に変換したもので上書きせよ、という意味を持っています。
次のコマンドで実際に変換されたか確認します。
入力 $ nkf -g example.csv 出力 UTF-8
となり、無事変換されていることが分かります。
注意
文字コードを変換する場合に
$ nkf -w example.csv > example.csv
のようにすると、ファイルの中身が全て消えてしまいます。overwriteオプションを用いるか、
出力ファイルには入力ファイルと違うものを指定するようにした方がよいでしょう。
応用例
応用例として次の2つの変換の場合を示します。
- ディレクトリ内のファイル全ての文字コードを表示します。
- ディレクトリ内のtxtファイル全てを、、文字コードをShift_JIS、改行をwindows形式(CRLF)に変換します。
1.ディレクトリ内のファイル全ての文字コードを表示します。
入力 $ nkf -g * 出力例 example.csv: Shift_JIS example2.csv: UTF-8 test.txt: Shift_JIS
2.ディレクトリ内のtxtファイル全てを、文字コードをShift_JIS、改行をwindows形式(CRLF)に変換します。
$ nkf -s Lw --overwrite *.txt
文字コード変換コマンドnkfの使い方まとめ Linux http://t.co/tWRDTCIX
“文字コード変換コマンドnkfの使い方まとめ Linux” http://t.co/mvr16kZG
文字コード変換コマンドnkfの使い方まとめ Linux http://t.co/AorG7O8P (via Instapaper)
メモ:ファイルの文字コード変換はnkfコマンド。http://t.co/TTIize8y
#Linux #memo
「文字コード変換コマンドnkfの使い方まとめ Linux」 http://t.co/38Nt49rz
文字コード変換コマンドnkfの使い方まとめ Linux http://t.co/5bg2TPA9Um
文字コード変換コマンドnkfの使い方まとめ Linux http://t.co/BLgEdwnFP1 これでShift-JIS兄貴から解放されるゾ~