文字コードを変換するプログラム nkf

Windows と Linux では使用されている文字/改行コードが違う

Windows Linux
文字コード Shift-JIS UTF-8, EUC-JP
改行コード CR + LF LF

文字/改行コードを変換するプログラムとして nkf がある

nkf の主なオプション

オプション 機能
-w 文字コードUTF-8 に変換する
-e 文字コードEUC に変換する
-s 文字コードを Shift-JIS に変換する
-j 文字コードを JIS に変換する
-w 文字コードを判定して表示する
-Lu 改行コードを LF に変換する
-Lw 改行コードを CR + LF に変換する
--overwrite 読み込み元のファイルを変換結果で上書きする

文字コードを変換するシェルスクリプト

  1. 引数にファイル名を指定
  2. 指定されたファイル名を変更
  3. 文字コードUTF-8, 改行コードを LF に変換する。
  4. 変換したデータを引数に指定したファイル名に書き込む
#! /bin/bash

file=$1
mv $file ${file}.org
nkf -w -Lu ${file}.org > $file
  • $1 は引数。複数の場合は $1, $2, $3, $4...と増える
  • 引数の数は $# で取得できる
  • ${file}.org の「{}」は変数名の範囲を示す