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
。