今日、Linux の sort コマンドでファイルをソートする際に質問を見つけました。env LANG=En_US を設定すると、期待どおりの結果が得られます。しかし、LANG=en_US の場合は奇妙な結果になります。私が実行したいくつかのコマンドと出力は次のとおりです。
[work@xx:/data1/muce_temp/datamarts/reduce_result_file/302/1d/201212260000]$ cat dd.dat
23 340_guard 16
23 340_guard 17
23 340_guard 18
23 360_guard... 16
23 360_guard 16
23 360_guard... 17
23 360_guard... 18
[work@xx:/data1/muce_temp/datamarts/reduce_result_file/302/1d/201212260000]$ LANG=En_US sort dd.dat
23 340_guard 16
23 340_guard 17
23 340_guard 18
23 360_guard 16
23 360_guard... 16
23 360_guard... 17
23 360_guard... 18
[work@xx:/data1/muce_temp/datamarts/reduce_result_file/302/1d/201212260000]$ LANG=en_US sort dd.dat
23 340_guard 16
23 340_guard 17
23 340_guard 18
23 360_guard... 16
23 360_guard 16 (why this line appear here ? )
23 360_guard... 17
23 360_guard... 18
このファイルの行のフォーマットの詳細は次のとおりです。
2^E3^F360_guard^E...^I16^Ee^E17/18^I63776769$
2^E3^F360_guard^E^I16^Ee^E17/18^I63776769$
2^E3^F360_guard^E...^I17^Ei^E0^I63776771$
2^E3^F360_guard^E...^I18^Ei^E1^I63776773$
^E は '\x05' 、^F は '\x06'、^I はタブ、$ は '\n' です。
前もって感謝します。