1
我试图排序第一列中的文件进行排序,不改变第二列的排列顺序,如果第一列具有相同的值,何时以及为什么需要一个“S”标志被列
$ cat test
1 4
1 3
1 2
1 1
3 3
2 1
2 2
2 3
愿望输出:
1 4
1 3
1 2
1 1
2 1
2 2
2 3
3 3
只有当我使用sort test -s -k1,1
这项工作。
下面的所有更改第二列的顺序:
sort test
sort test -k1
sort test -k1,1
sort test -s -k1
1 1
1 2
1 3
1 4
2 1
2 2
2 3
3 3
为什么我需要与-k1,1
一起使用-s
?
那么-k1,1和-k1的区别是什么? – once
@once'-k'允许你定义'sort'所使用的键的位置,即'-k start,end'。 '-k1,1'表示“仅使用键作为第一个字段的键”,-k1'表示“使用键作为键从第一个字段到行尾的子行”,因为默认停止位置是队伍的尽头。这就是为什么在你的例子中你需要'-k1,1'而不是'-k1'。我建议你阅读'sort'手册:http://man7.org/linux/man-pages/man1/sort.1.html –
我阅读两个标志的手册,只是不能清楚为什么事情不起作用当使用-k1,1“使用只作为键的第一个字段进行排序”时,仍然需要为这种情况添加-s稳定标志 – once