リスト文字列は大文字と小文字を区別してソートしようとしますが、リストは大文字と小文字を区別しない順序で表示されます。ソートのための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
られるので、大文字と小文字を区別しない並べ替えです。a
A
このlocale
コマンドは有効なロケール設定を表示する必要があります。