GNU/Linux >> Linux の 問題 >  >> Linux

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

非 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 の間にある そして jumps42 という事実にもかかわらず と fox 通常は 17 の前に移動する文字を前に置く .
____________
ASCII 値の順:スペース=040、! =041, # =043, $ =044, % =045、および @ =0100。 (スペースバーを無視して)これは、一部のキーボードではほぼ左から右の順序であることに注意してください。


並べ替え順序を決定するには、各行に異なる文字を使用してファイルを作成し、それを並べ替えるだけです。結果の出力は、ソート順を示します。


Linux
  1. Linux でデフォルトのシェルを変更する方法

  2. 画面のデフォルトのパスワードは何ですか?

  3. Linux:すべての RAM を使用しているプロセスを見つけますか?

  1. Linuxを持続可能なOSにする理由

  2. Linux ls -l コマンドのデフォルトのサイズ単位は何ですか

  3. Linux での curl -k -i -X の意味は何ですか?

  1. Linuxコミュニティが特別な理由は何ですか?

  2. LinuxとUnix:違いは何ですか?

  3. Linuxでの.bashrcファイルの目的は何ですか