2

2 列目の 2 番目の文字でファイルを番号順に並べ替えたいだけです。サンプルファイルは次のようになります。

aa 19
aa 189
aa 167
ab 13
nd 23
at 32
ca 90

私は次のような結果を期待しています

ca 90
at 32
ab 13
nd 23
aa 167
aa 189
aa 19

コマンドを使用しsort -n -k 2.2,2.2 [filename]ます。しかし、次のような結果が表示されます。

aa 167
aa 189
aa 19
ab 13
nd 23
at 32
ca 90

それは正しい答えではありません。私のコマンドの何が問題なのか誰か知っていますか?

4

2 に答える 2

3

問題は、正しい列区切り文字を指定していないことsortであり、スペースではなくタブであると想定しています。

sort -t ' ' -nk 2.2

うまく動作します。

編集:私のmanページでは、空白はデフォルトで区切り文字としてカウントされると書かれていますが、実際には追加-t ' 'すると解決します。

于 2012-10-20T21:04:03.127 に答える
0
sort -t ' ' -k2.2,2.2 filename
于 2012-10-20T21:06:05.317 に答える