非 POSIX ロケールを使用しているようです。
試してみてください:
export LC_ALL=C
そして sort .
info sort 明確に言う:
(1) 非 POSIX ロケールを使用する場合 (例えば、`LC_ALL' を `en_US' に設定することにより)、`sort' は、慣れ親しんでいるものとは異なる方法でソートされた出力を生成する可能性があります。その場合、`LC_ALL' 環境変数を `C' に設定します。 `LC_COLLATE' だけを設定すると 2 つの問題があることに注意してください。まず、`LC_ALL' も設定されていると効果がありません。第 2 に、`LC_CTYPE' (または、`LC_CTYPE' が設定されていない場合は `LANG') が互換性のない値に設定されている場合、動作は未定義です。たとえば、`LC_CTYPE' が `ja_JP.PCK' であるのに、`LC_COLLATE' が `en_US.UTF-8' である場合、未定義の動作が発生します。
man sort として 「dictionary-order」は「空白と英数字のみを考慮する」ことを意味します。たとえば、与えられたデータ
The
!quick
brown
@fox
jumps
#over
17
$lazy
dogs
%42
times.
飾らない sort コマンドが生成します
dogs
!quick
#over
$lazy
%42
@fox
17
brown
jumps
The
times.
(スペース文字と ! で始まる行を入れる 、 # 、 $ 、 % 、および @ 文字と数字で始まる行の前の記号、つまり、英数字 )、しかし sort -d 生産
dogs
17
%42
brown
@fox
jumps
$lazy
#over
!quick
The
times.
dogs スペースで始まっているため、まだ最初ですが、特殊 (句読点) 文字は無視されます。 17 42 の前に来る 、および fox brown の間にある そして jumps 、 42 という事実にもかかわらず と fox 通常は 17 の前に移動する文字を前に置く .
____________
ASCII 値の順:スペース=040、! =041, # =043, $ =044, % =045、および @ =0100。 (スペースバーを無視して)これは、一部のキーボードではほぼ左から右の順序であることに注意してください。
並べ替え順序を決定するには、各行に異なる文字を使用してファイルを作成し、それを並べ替えるだけです。結果の出力は、ソート順を示します。