36

私は次のファイルを持っています:

1 2 3
1 4 5
1 6 7
2 3 5
5 2 1

そして、ファイルを2番目の列でソートする必要がありますが、最大数(この場合は6)から最小数に並べ替えます。私はで試しました

sort +1 -2 file.dat

しかし、それは私に逆の順序を与えます。

結果は次のようになります。

1 6 7
1 4 5
2 3 5
5 2 1
1 2 3
4

3 に答える 3

61
sort -nrk 2,2

トリックを行います。

nは数値の並べ替え、rは逆順、k2,2は2番目の列です。

于 2013-01-02T11:03:19.733 に答える
14

-rを試しましたか?マニュアルページから:

-r、-reverse

          reverse the result of comparisons
于 2013-01-02T11:01:29.840 に答える
3

言及したように、ほとんどのバージョンにsortは、-rあなたが試していない場合のオプションがありますtac

$ sort -nk 2,2 file.dat | tac 
1 6 7
1 4 5
2 3 5
5 2 1
1 2 3

$ sort -nrk 2,2 file.dat 
1 6 7
1 4 5
2 3 5
5 2 1
1 2 3

tac-ファイルを逆に連結して印刷します

于 2013-01-02T11:12:21.130 に答える