说我有这个文件。
$ cat a.txt
c 1002 4
f 1001 1
d 1003 1
a 1001 3
e 1004 2
b 1001 2
我想按第二列然后按第三列对其进行排序。第二列是数字,而第三列可以视为字符串。我知道以下命令效果很好。
$ sort -k2,2n -k3,3 a.txt
f 1001 1
b 1001 2
a 1001 3
c 1002 4
d 1003 1
e 1004 2
但是,我认为sort -k2n a.txt
也应该起作用,而事实并非如此。
$ sort -k2n a.txt
a 1001 3
b 1001 2
f 1001 1
c 1002 4
d 1003 1
e 1004 2
似乎它按第二列排序,然后按第一列而不是第三列排序。为什么会这样?这是一个错误吗?原因sort -k2 a.txt
适用于上述数据,因为这些数字只是固定宽度。
我的排序版本sort (GNU coreutils) 8.15
在 cygwin 中。