nkf オプション
入力文字コードを自動認識するため、入力ファイルが下記文字コードの場合、入力文字コードの指定は不要。
- JISコード(ISO-2022-JP)
- Shift-JIS
- 日本語EUC
- UTF-8
- UTF-16
# 【入力ファイル】 の文字コードと改行コードの判別結果を出力する
nkf --guess 【入力ファイル】
# 【入力ファイル】 をUTF-8文字コードで出力する
nkf -w 【入力ファイル】
# 【入力ファイル】 をUNIX改行コード(LF)で出力する
nkf -Lu 【入力ファイル】
# 【入力ファイル】 をUTF-8文字コードおよびUNIX改行コード(LF)へ変換して上書きする
nkf -wLu --overwrite 【入力ファイル】
iconv オプション
# 【入力ファイル】 の 【入力文字コード】 を 【出力文字コード】 へ変換して 【出力ファイル】 へ出力する
iconv -f 【入力文字コード】 -t 【出力文字コード】 【入力ファイル】 -o 【出力ファイル】
iconv --from-code 【入力文字コード】 --to-code 【出力文字コード】 【入力ファイル】 --output 【出力ファイル】
# 文字コード一覧を表示する(文字コードを指定する際に利用)
iconv -l
iconv --list
入力ファイルの文字コードが不明は場合はfile
コマンドで確認。
# Shift-JIS は Non-ISO extended-ASCII text と表示される
$ file test.txt
test.txt: Non-ISO extended-ASCII text, with CRLF line terminators
iconv には改行コード変換オプションがないため、Windows改行コード(CR+LF)からUNIX改行コード(LF)へ変換する場合は、tr
コマンドにてCR+LF \r\n
から \r
を削除し、改行コードをLF \n
へ変換。
# 【入力ファイル】 の 【入力文字コード】 を 【出力文字コード】 に、
# 改行コードをUNIX改行コード(LF)へ変換して 【出力ファイル】 へ出力する
iconv -f 【入力文字コード】 -t 【出力文字コード】 【入力ファイル】 | tr -d '\r' > 【出力ファイル】