折りたたまれたケースを並べ替える理由は何ですか?大文字と小文字の区別オプションは何ですか?

折りたたまれたケースを並べ替える理由は何ですか?大文字と小文字の区別オプションは何ですか?

リスト文字列は大文字と小文字を区別してソートしようとしますが、リストは大文字と小文字を区別しない順序で表示されます。ソートのためのManまたは--help infoは-fまたは--ignore-caseオプションを提供しますが、デフォルトの順序で見えるものを無視するような鈍感ソートのオプションはリストされません。ソート用に定義されたエイリアスがないことを確認しました。

ソートの基本操作が私が選択できるオプションであるのはなぜですか。そのデフォルト値をオーバーライドする文書化されたオプションがないのはなぜですか。

追加のチェックで句読点を無視するように見えるので、辞書式のソートを実行しているようです。とにかく、基本的に正常に動作するようにしたり、少なくともCLIオーバーライドを提供して正常に動作するようにしたいと思います。

sort --version ソート (GNU coreutils) 8.4

セントース6だと思います。

答え1

これはロケールによって異なります(Debian / GNUシステムの場合)。

$ printf '%s\n' B A b a | LC_COLLATE=en_US.UTF-8 sort 
a
A
b
B
$ printf '%s\n' B A b a | LC_COLLATE=C sort 
A
B
a
b

GNUソートのマニュアルページには次のものがあります。

*警告する*環境で指定されたロケールはソート順に影響します。LC_ALL=Cデフォルトのバイト値を使用して既存のソート順序を取得するように設定します。

LC_COLLATEソートに影響を与えるオプションLC_ALLですが、他のすべてのLC_*オプションを無視する余分なスイッチです。

少なくとも、元の順序に関係なく一番前に並べ替えen_US.UTF-8られるので、大文字と小文字を区別しない並べ替えです。aA

このlocaleコマンドは有効なロケール設定を表示する必要があります。

関連情報