search
LoginSignup
10

More than 1 year has passed since last update.

posted at

updated at

Linux 【 nkf, iconv 】 文字&改行コード変換

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 or --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' > 【出力ファイル】

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
10