我的文件包含 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 sort 或 https://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/