[Sy] macOS(Sierra)のターミナルでテキストファイルの文字コードを変換するコマンド
最近Windowsを使っている人とのファイルのやり取りが多くなってきたので、Shift-JISからUTF-8への変換をしたい場合や、そもそも文字コードがわからず調べたいときがよくあります。そういった時に役に立つのが Homebrew でインストールできる nkf というコマンドです。
環境
- macOS 10.12 (Sierra)
- Homebrew 1.0.7
- nkf 2.1.4 (Homebrewでインストール)
⇒ [Sy] macOS(Mac OS X)のバージョン情報をターミナルから調べるためのコマンド | Syntax Error. ⇒ [Sy] macOS(Mac OS X) で Homebrew のバージョンを調べる方法 | Syntax Error
nkfがインストールされているか確認
まずnkf
コマンドが使える状態かどうかを以下のコマンドなどで調べてみましょう。
$ which nkf
/usr/local/bin/nkf <- nkfコマンドのパスが通っているか確認してます。(どこにも見当たらない場合は「nkf not found」とか出ます)
$ brew list | grep nkf
nkf <- Homebrewでインストール済みのパッケージにnkfがあるかどうか確認してます。(インストールしていない場合は何も表示されません)
インストールされていれば、次の「nkfをHomebrewでインストール」は読み飛ばしてください。
nkfをHomebrewでインストール
まだnkf
がインストールされてなかった場合は、以下のようにbrew
コマンドでインストールしてください。
$ brew install nkf
インストールが終わったら、バージョンを確認してみましょう。
$ nkf -v
Network Kanji Filter Version 2.1.4 (2015-12-12)
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).
Copyright (C) 1996-2015, The nkf Project.
まったく本題と関係ないですが、nkf
は「Network Kanji Filter」の略みたいですね。
nkfコマンド(-gオプション)で文字コードを調べる
文字コードを調べるには、-g
オプションを使います。
$ nkf -g path/to/file <- 「path/to/file」 は任意のファイルのパスに置き換えてください。
UTF-16
nkfコマンドで文字コードを変換(上書き)する
文字コードを変換したい場合は、 変換後の文字コードによってオプションが変わります。
また、変換前の文字コードは自動で判別してくれるので、特に指定は必要ないです。
まず UTF-8 に変換したい場合は-w
オプションをつけます。
$ nkf -w --overwrite path/to/file
--overwrite
をつけることで、元のファイルに上書きします。
上書きせずに別ファイル(例:path/to/new_file
)で保存したい場合は、こうしましょう。
$ nkf -w path/to/file > path/to/new_file
続いて Shift-JIS に変換したい場合は、-s
オプションをつけます。
$ nkf -s --overwrite path/to/file
関連記事
- [Sy] macOS(Sierra) に 5分 で Redis の環境を作る手順
- [Sy] Linux/macOS で Apache のバージョンを調べる方法
- [Sy] Mac/Linuxでポートを使っているプロセスを調べるのに便利なlsofコマンド
- [Sy] Homebrewでinstallしたformulaの設定や情報を見直したい時には「brew info」コマンドが便利
- [Sy] Mac(El Capitan)にPHP5.6とかPHP7をインストールして使えるようにする手順
- [Sy] Macのバージョン情報をターミナルから調べるためのコマンド
- [Sy] Jupyter notebook (iPython notebook)の環境をMacに構築する手順