質問
次のテキストファイル「入力」を並べ替えようとするとき:
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をエクスポートします 助けなければなりません
所属していません StackOverflow