Linux系OSでファイルの文字コードや改行コードを調べる

Linux系OSでUTF8やShift-jisなどファイルの文字コード調べるコマンドです。

nkfコマンドを利用すれば、文字コードや改行コードを調べることができます。

動作環境

インストール

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でファイルの文字コードを変換することできますが、それはまた後日。

関連記事
最新記事