質問

次のテキストファイル「入力」を並べ替えようとするとき:

test1 3   
test3 2
test 4

コマンドで

sort input

出力はまさに入力です。これが出力です

od -bc input

:

0000000 164 145 163 164 061 011 063 012 164 145 163 164 063 011 062 012
          t   e   s   t   1  \t   3  \n   t   e   s   t   3  \t   2  \n
0000020 164 145 163 164 011 064 012
          t   e   s   t  \t   4  \n
0000027

これは、2つの列のあるタブ分離ファイルです。私がする時

sort -k 2

出力が変更されます

test3 2
test1 3
test 4

それが私が期待するものです。しかし、もしそうなら

sort -k 1

入力に関しては何も変わりませんが、「テスト」が「test1」の前に並べ替えると予想されます。最後に、もしそうなら

cat input | cut -f 1 | sort

私は得ます

test
test1
test3

予想通り。これには論理的な説明はありますか?デフォルトでは正確に何をするべきか、次のようなことは次のとおりです。

sort -k 1

?

私のバージョンの種類:

sort (GNU coreutils) 7.4

正しい解決策はありません

他のヒント

男のページから:

* 警告 * 環境で指定されたロケールは、ソートオーダーに影響します。 LC_ALL = Cを設定して、ネイティブバイト値を使用する従来のソート順序を取得します。

そうらしい、それっぽい lc_all = cをエクスポートします 助けなければなりません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top