sort と uniq の結果が変だった。
1行1単語のファイルから、単語の数を集計しようとしました。
ところが。
uniq -c の結果がおかしい!
grep すると 1つしか見つからないのに、
uniq -c だと、その単語が 713 もあるって出てくる!なんなの!
よく見たらそもそも sort も並び順おかしい!同じ単語がばらばらの場所にある!
…とか思ったのですが、LC_ALL=C をつけたらうまくいきました。
問題になった環境では試せていませんが、LC_COLLATE=C で充分かもしれないです。
ロケールの確認は locale コマンドで。
■参考
Ubuntu日本語フォーラム / utf-8に対応したソートコマンドってありますか。
LC_ALL環境変数とsortコマンド - sileの日記
追記: sort を使うときは,LC_ALL=C を忘れずに - ny23の日記
1 Entry per Day: What's "LANG=C" ?Standard Locales - The GNU C Library
Linux Hacks:環境変数によるロケールの管理 (1/2) - ITmedia エンタープライズ
ところが。
uniq -c の結果がおかしい!
grep すると 1つしか見つからないのに、
uniq -c だと、その単語が 713 もあるって出てくる!なんなの!
よく見たらそもそも sort も並び順おかしい!同じ単語がばらばらの場所にある!
…とか思ったのですが、LC_ALL=C をつけたらうまくいきました。
問題になった環境では試せていませんが、LC_COLLATE=C で充分かもしれないです。
LC_ALL=C sort text.txt | LC_ALL=C uniq -c > result.txt
ロケールの確認は locale コマンドで。
■参考
Ubuntu日本語フォーラム / utf-8に対応したソートコマンドってありますか。
LC_ALL環境変数とsortコマンド - sileの日記
追記: sort を使うときは,LC_ALL=C を忘れずに - ny23の日記
1 Entry per Day: What's "LANG=C" ?Standard Locales - The GNU C Library
Linux Hacks:環境変数によるロケールの管理 (1/2) - ITmedia エンタープライズ
by tokage-shippo
| 2012-02-04 17:04
| その他