Linux 中sort命令 排序指定两个-k异常

 

001、

Linux 中sort命令 排序指定两个-k异常

[root@PC1 test]# ls
a.txt
[root@PC1 test]# cat a.txt                ##    测试数据
4       a       8       5
7       a       3       8
2       b       5       3
3       b       9       5
5       a       6       9
9       b       1       4
7       a       6       3
2       a       5       3
8       b       3       2
6       a       7       7
5       b       3       8
7       b       2       4
[root@PC1 test]# sort -k 2 -k 1 a.txt        ## 先按照第二列排序,然后按照第1列排序, 结果异常
7       a       3       8
2       a       5       3
7       a       6       3
5       a       6       9
6       a       7       7
4       a       8       5
9       b       1       4
7       b       2       4
8       b       3       2
5       b       3       8
2       b       5       3
3       b       9       5

 

002、正确做法及原因

[root@PC1 test]# ls
a.txt
[root@PC1 test]# cat a.txt                          ## 测试数据
4       a       8       5
7       a       3       8
2       b       5       3
3       b       9       5
5       a       6       9
9       b       1       4
7       a       6       3
2       a       5       3
8       b       3       2
6       a       7       7
5       b       3       8
7       b       2       4
[root@PC1 test]# sort -k 2,2 -k 1 a.txt          ## -k2,2 表示从第二个字段开始,到第二个字段结束;  如果单纯用-k 2则表示按照第二个字段开始排序,会一直作用的最后一列
2       a       5       3
4       a       8       5
5       a       6       9
6       a       7       7
7       a       3       8
7       a       6       3
2       b       5       3
3       b       9       5
5       b       3       8
7       b       2       4
8       b       3       2
9       b       1       4

 。

 

posted @ 2025-02-20 10:55  小鲨鱼2018  阅读(16)  评论(0)    收藏  举报