Linux系OSでUTF8やShift-jisなどファイルの文字コード調べるコマンドです。
nkfコマンドを利用すれば、文字コードや改行コードを調べることができます。
動作環境
- Rocky Linux 9.2
- nkf 2.1.4
インストール
nkfがインストールされていなければ、インストールが必要です。
Rocky Linux9のnkfはEPELリポジトリにあるので、EPELのインストールから必要です。
epelのインストール
epelをdnfでインストールします。
「dnf clean all」はキャッシュのクリアなので、やらなくてもOKです。
# dnf install -y epel-release
# dnf clean all
EPELの設定
EPELを使用すると明示しないとEPELパッケージを取得しないようにします。
不用意にEPELのからインストールしないための対策です。
# vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux $releasever - $basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir
- enabled=1
+ enabled=0
gpgcheck=1
countme=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever
epelのenabled項目を0にします。
nkfのインストール
dnfでnkfをインストールします。
「–enablerepo=epel」を付けることで、epelからインストールできます。
# dnf --enablerepo=epel install -y nkf
文字コードの確認
nkfコマンドで文字コードと改行コードを確認できます。
「–guess」オプションを付けると文字コードと改行コードが表示されます。
「-g」の省略オプションだと、文字コードのみ表示されます。
data1.csvはUTF-8で改行コードはLFです。
data2.csvはSJISで改行コードはCRLFです。
# nkf --guess data1.csv
UTF-8 (LF)
# nkf --guess data2.csv
Shift_JIS (CRLF)
まとめて表示することもできます。
# nkf --guess ./*
./data1.csv: UTF-8 (LF)
./data2.csv: Shift_JIS (CRLF)
まとめ
csvファイルをShift_JIS (CRLF)で出力してほしいという要望が結構あります。
おそらくWindowsのExcelで開きたいのでしょう。
ちゃんとcsvがShift_JIS (CRLF)で出力されているか確認するために、nkfコマンドをよく使用します。
nkfでファイルの文字コードを変換することできますが、それはまた後日。