注意点
LANG設定によっては正しくsortされず、uniqオプションを利用すると情報が抜け落ちてしまう。
環境情報
$ sort --version sort (GNU coreutils) 8.26 Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Mike Haertel and Paul Eggert.
解説
例えば以下のようなtestという名称の日本語ファイルを用意した際に
$ cat test カエデ アイカ カエデ アイカ テスト
$ file test test: UTF-8 Unicode text
言語設定が日本語になっていない場合に
$ echo $LANG en_US.UTF-8
sortコマンドが機能していません。
$ sort test カエデ アイカ カエデ アイカ テスト
ポイントとして、きちんと並び変えられる日本語が多数です。一部の日本語間でsort結果がおかしくなってしまいます。
この状態でuniqオプションを指定すると
$ sort -u test カエデ
想定とは異なる出力結果になってしまいます。
対策
コマンド実行前に「LANG=ja_JP.UTF-8」を指定します。
実行結果は以下のようになり
$ LANG=ja_JP.UTF-8 sort test アイカ アイカ カエデ カエデ テスト
uniqオプションにて欲しい情報が出力されます。
$ LANG=ja_JP.UTF-8 sort -u test アイカ カエデ テスト
uniqオプションを利用する場合も指定するとLANG=ja_JP.UTF-8
を付与しなければ情報が抜け落ちてしまいおかしな結果になる危険性があるので、ご注意ください。