36

我有以下文件:

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

我希望将文件排序为第二列,但从最大数字(在本例中为 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 用于倒序,k 2,2 用于第二列。

于 2013-01-02T11:03:19.733 回答
14

你试过 -r 吗?从手册页

-r,--反向

          reverse the result of comparisons
于 2013-01-02T11:01:29.840 回答
3

如前所述,如果您不尝试,大多数版本sort都可以选择:-rtac

$ 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 回答