コミュニティ

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' > 【出力ファイル】
r18j21
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
この記事は以下の記事からリンクされています
コメント
この記事にコメントはありません。
あなたもコメントしてみませんか :)
すでにアカウントを持っている方は
ユーザーは見つかりませんでした