Linuxのデフォルトのソート順序は何ですか?

Linuxのデフォルトのソート順序は何ですか?

長い間、私はプログラムの基本的な動作がsortASCIIシーケンスを使用することだと思いました。ただし、パラメータなしで次の行を入力すると、次のようになりますsort

#
@

私は持っています:

@
#

しかし、ASCIIテーブルによると#35と64です@。他の例:

A
a

出力は次のとおりです

a
A

誰でもこれを説明できますか?しかし、これを使用するときの「事前順序」とは何ですかsort -d

ベストアンサー1

POSIXではなくロケールを使用しているようです。

努力する:

export LC_ALL=C

それからsort

info sort確かに:

(1)POSIX以外のロケールを使用している場合(例:「LC_ALL」を「en_US」に設定)、「sort」は使い慣れたソートとは異なる出力を生成できます。この場合、「LC_ALL」環境変数を「C」に設定してください。 「LC_COLLATE」の設定には2つの問題があります。まず、「LC_ALL」も設定されていると効果はありません。次に、「LC_CTYPE」(または「LC_CTYPE」が設定されていない場合は「LANG」)が互換性のない値に設定されている場合、未定義の動作を持ちます。たとえば、「LC_CTYPE」が「ja_JP.PCK」であるが「LC_COLLATE」が「en_US.UTF-8」の場合、未定義の動作が発生します。

おすすめ記事