「ソート」ユーティリティはどのように機能しますか? (なぜ私が思うように動作しないのですか?)[複製]

「ソート」ユーティリティはどのように機能しますか? (なぜ私が思うように動作しないのですか?)[複製]

テキストファイルが2つあります。

$ cat /tmp/test1
"AAP" bar
"AEM" bar
"AA" bar
"AEO" bar
"A" bar

$ cat /tmp/test2
"AEM" foo
"AAP" foo
"A" foo
"AEO" foo
"AA" foo

並べ替えたい

$ sort /tmp/test1
"AA" bar
"AAP" bar
"A" bar              <-- "A" is in position 3
"AEM" bar
"AEO" bar

$ sort /tmp/test2
"AA" foo
"AAP" foo
"AEM" foo
"AEO" foo
"A" foo              <-- "A" is in position 5

なぜ"A"終わるの?場所3/tmp/test1そして位置5インチ/tmp/test2

私の期待はすべての列のすべての文字比較されます。

したがって、3列を比較するとき、、、とが'A'互いに'E'比較'"'され、これがこのテストデータの最終ソート順を決定する最終決定要因となります。

どうやら私の期待が間違っていましたが、sort私が期待どおりに機能しない場合はどうなりましたか?

sort目的のソート順序を取得するために使用できるコマンドラインオプションやその他のユーティリティはありますか?

答え1

組み合わせロケールを変更する必要があります。説明する動作は、en_US他の多くのロケールで一般的です。修理する:

LC_ALL=C   sort  /tmp/test1

この回答の詳細は次のとおりです。https://stackoverflow.com/questions/6531674/linux-sort-unexpected-output

答え2

おそらくアルファベットの文字だけを見ることができますか?したがって、A次のアルファベット文字はbバーから来ます。

関連情報