答えて
@cnicutarによって提供される解決策は正しいですが、その理由は説明が必要なので、私は新しい答えを出しています。 en_US:
は最後に、私はcoreutilsのバグの疑い@cnicutarとの議論の後ケースが折り畳まれ、句読点があるため無視されるので、その時点の並べ替えで
壊れて表示され
sort
を私はthis sorting behavior is expectedがことがわかりました「 .UTF-8 'はこの動作を指定します。
次のようにsort
に、あなたの入力がマッピングされているように見える:
ABC -> ABC
AB-C -> ABC
ABCDEFG-HI -> ABCDEFGHI
あなたは純粋なASCIIソートしたい場合は、sort
どの手段を呼び出すときに、一時的にC
にロケールを設定する(LC_ALL=C sort
を呼び出す必要がありますローカライズされていない "標準"の動作; C
の代わりにPOSIX
を使用することもできます)。
他のUnixでは、この動作は異なっているようですが(Mac OS XではどのユーザランドツールがFreeBSDから派生しているかテストされています)、LC_ALL=C sort
はすべてのPOSIXシステムで同じ動作をするはずです。
おかげで、ありがとう:-) – cnicutar
私はこの:)を覚えているが)
[[email protected] ~]$ LANG=POSIX sort
ABC
AB-C
ABCDEFG-HI
AB-C
ABC
ABCDEFG-HI
またLANG=C
動作するはずですしてみてください。
'AB-C'が途中に表示されるような言語設定はありません(EBCDICでさえないので)、これは問題ではなく、代わりにuser678070が' sort'を呼び出す方法です。 – DarkDust
@DarkDust私はちょうど異なるLANGで試しました。 'en_US.utf8'ではopが言っていることをします(前にこの問題がありました)。 'locale -a'を行い、いくつかを選んでください。 – cnicutar
@cnicutar:私はそれを自分で試してみましたが、正しいソートを得ています。そして、ASCII文字のみが使用されていることを考えると、 'en_US.utf8'は、UTF-8がASCIIをサブセットとして持つので、この奇妙な並べ替えが発生することは非常に疑問です。 'LANG = foobar'を使用しているときに" unsorted "出力を得ますか?もしそうなら、あなたの 'sort'はロケールが見つからないときはソートしません。 – DarkDust
- 1. 私の並べ替え関数が予期しない出力を与える
- 2. C++の選択並べ替えなし並べ替え並べ替えなし
- 3. jQuery Sortable入力名の並べ替えと並べ替え
- 4. 予期しないリストの複製をCommon Lispで並べ替える
- 5. linuxの並べ替えが正しく動作しない
- 6. 選択並べ替え並べ替え
- 7. 並べ替えで並べ替え
- 8. UITableView並べ替えのような並べ替え
- 9. 予期しない出力
- 10. 予期しない出力
- 11. 予期しない出力
- 12. 予期しない出力
- 13. 予期しない出力
- 14. 予期しない出力)
- 15. アルファベット順の並べ替えられていないリストを並べ替え
- 16. XSLTカスタム並べ替え - 期待どおりにソートしない
- 17. MarkLogic node.js api - グループを並べ替え、並べ替えで並べ替え
- 18. ランダムな順序で並べ替えを並べ替え
- 19. ヒープ並べ替え間違った出力を与える
- 20. 並べ替え優先度に基づいて並べ替え
- 21. 並べ替えられていないリンクリストを並べ替える方法
- 22. ハッシュテーブル - 入力順の並べ替え
- 23. 挿入挿入して並べ替えで並べ替え
- 24. tabstat:特定の変数で出力を並べ替え/並べ替える方法は?
- 25. ツリー並べ替え中に配列が並べ替えられない
- 26. ループの中でfindの出力を並べ替える
- 27. 単純な並べ替えではなく、配列の並べ替え
- 28. ヒープの並べ替えと挿入の並べ替え
- 29. Eclipseエクステンションポイントのエクステンションの並べ替え/並べ替え
- 30. DB内での並べ替えとアプリケーションの並べ替え
あなたが使用している正確な 'sort'呼び出しを投稿してください。間違っている可能性があります。 – DarkDust