ソート時にカンマが数字の前に来ますか?

ソート時にカンマが数字の前に来ますか?

foo内容が以下のファイルがあります。

140,22
236,224
2,86

これを使用してソートすると、sort foo同じ結果が得られます。それは,数字の後ろにあるか、少なくとも,後ろにあることを伝えます3

逆説的にも、次のことが起こります。

$echo -e "2\n,\n3" | sort
,
2
3

,その言葉はそれが以前にあったことであることを言います2。私は理解できません。誰かがこれを説明できますか?

答え1

種類地域によって異なります。だから、奇妙な説明があるかもしれません。私のシステムであなたと同じ結果を得ました。ここでカンマは無視されるロケールを通して。したがって、リストにおよび276を追加すると、次のようになります。296

$ sort /tmp/tosort
140,22
236,224
276
2,86
296

これは、2番目のコマンドの結果も説明します。カンマがソートされていません。最初しかし、無視されました。したがって、本質的に空の文字列をソートします。テストに空の文字列を追加すると、最初にその文字列が表示されます。

$ echo -e "2\n,\n3\n" | sort

,
2
3

(なぜ空の文字列がコンマの前にあるのかは明確ではありません。

「標準」POSIXロケールを使用すると、より予測可能な結果が得られます。

$ export LC_ALL=C
$ sort foo
140,22
2,86
236,224

関連情報