Solaris 資料一覧
sortを実行すると「sort: missing NEWLINE added at end of input file 」というエラーが出る
2008/1/16更新
対応バージョン: 8
指定したファイル中に現在使用しているLANG以外の文字コードが含まれている。
例えばUTF-8環境においてSJISの文字コードを含むファイルをsortしようとするとこのエラーが出る。
% locale LANG=ja_JP.UTF-8 LC_CTYPE="ja_JP.UTF-8" LC_NUMERIC="ja_JP.UTF-8" LC_TIME="ja_JP.UTF-8" LC_COLLATE="ja_JP.UTF-8" LC_MONETARY="ja_JP.UTF-8" LC_MESSAGES="ja_JP.UTF-8" LC_ALL=ja_JP.UTF-8 % sort foo sort: missing NEWLINE added at end of input file foo sort: foo を読み取れません。: バイトシーケンスが正しくありません。
対処としては以下の2通りの方法がある。
1. LANGを対象ファイルと同じ文字コードにする
例) 対象ファイルがSJISの場合
% setenv LANG ja_JP.PCK % setenv LC_ALL ja_JP.PCK % locale LANG=ja_JP.PCK LC_CTYPE="ja_JP.PCK" LC_NUMERIC="ja_JP.PCK" LC_TIME="ja_JP.PCK" LC_COLLATE="ja_JP.PCK" LC_MONETARY="ja_JP.PCK" LC_MESSAGES="ja_JP.PCK" LC_ALL=ja_JP.PCK % sort foo > bar
2. 対象ファイルをLANGと同じ文字コードにする
例) LANGがUTF-8の場合
% mv foo foo.org % iconv -f SJIS -t UTF-8 foo.org > foo % sort foo > bar
関連資料・記事