我的文件包含 3 列数字,如下面的 5 行数据,

1 811036 395
2 811036 195
1 811036 295
2 811036 95
1 811036 95

我想按升序对第 1 列进行排序,按降序对第 3 列进行排序,
1 811036 395
1 811036 295
1 811036 95
2 811036 195
2 811036 95

我尝试了“ sort -n -k 1 -n -k 3 ”但失败了。
如何编写单个 Linux shell 命令来完成此操作?

最佳答案

命令 sort -k1,1n -k3,3nr 应该可以工作。
它仅对第一列进行排序(这是 -k1 -k1,1 之间的区别),因此它可以到达第二个参数。

请注意 sort -k1,1n -k3nr 可能也有效。

有关多键排序的更多信息:Sorting multiple keys with Unix sorthttps://unix.stackexchange.com/questions/52762/trying-to-sort-on-two-fields-second-then-first

关于linux shell,按升序排列第1列,按降序排列第3列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39203630/

10-12 22:59