sortで日本語のソートがうまくいかないときは、ロケールを確認する
問題
sortで日本語がうまくソートされない
調査
echo $LANGをしてみる
結果が ja_JP.UTF-8 かどうかを確認する
ワークアラウンド
ja_JP.UTF-8 以外 だったとき
LANG=ja_JP.UTF-8 sort とロケールを指定して実行する
原因
strcoll()という文字比較関数が標準Cライブラリにある
この関数は、LC_COLLATEというロケールカテゴリによって挙動が変わる
ロケールを参照する場合、LC_COLLATEのカテゴリなら、LC_ALL, LC_COLLATE, LANGの順に値を見ていく