テキストファイルの文字コードや改行コードを変換したい¶
iconvとsedコマンドを使う¶
nkfコマンドは環境によってインストールされていない場合があります。iconvコマンドとsedコマンドはAlmaLinuxの最小イメージisoを使用した最小インストール環境でも使えます。 iconvコマンドは改行コードの変換には対応していませんので、sedコマンドを使用します。
文字コードを変換する¶
iconv -f <入力文字コード> -t <出力文字コード> <入力ファイル名> -o <出力ファイル名>
文字コードはiconv -l
コマンドで確認することができ、UTF-8
、SHIFT_JIS
、EUC-JP
のように指定します。
入力ファイル名と出力ファイル名は同じものを指定することができますが、意図しない変換となった場合を考慮して、出力ファイル名を別にする、または事前にバックアップしてリカバリできるようにすることをお勧めします。
出力ファイル名(-o)を指定しなかった場合、変換結果は標準出力に出力されます。
例: ShiftJISからUTF-8に変換する
iconv -f SHIFT_JIS -t UTF-8 test.txt -o test_conv.txt
改行コードを変換する¶
例: CRLFをLFに変換する CRを削除すればよいので、-dオプションを使用します。
sedの代わりにtrコマンドで削除することも出来ます。
例: LFをCRLFに変換する L
find /moto -name '*.html'|xargs