如题,在学习sort排序的时候,搜索了论坛的很多帖子。关于k参数,仍然没能理解。 这个例子是ywlscpl学长在一个帖子回复中举的。原帖我找不到了。
文本file如下
a1,9,2,21
a2,9,4,11
b1,8,7,15
b2,8,1,17
c1,7,6,24
c2,7,3,13
# sort -t, -k2 file
c2,7,3,13
c1,7,6,24
b3,8,1,12
b2,8,1,17
b1,8,7,15
a1,9,2,21
a2,9,4,11
对于这个结果,我的理解是:如果k后面只有一个数字,表明每行从这个字段开始一直比较到该行最后一个字段结束。
例如 c2 和 c1行的第二个字段 都是7,所以接着比较第三个字段,由于c2的第三个字段是数字3 小于 c1的第三个字段数字6,所以被排在了前面。
# sort -t, -k2,2 file
c1,7,6,24
c2,7,3,13
b1,8,7,15
b2,8,1,17
b3,8,1,12
a1,9,2,21
a2,9,4,11
这个结果我就很模糊了,我理解的是-k2,2表示仅仅比较每行的第二个字段。那么在第二个字段相同的时候,又以哪个字段作为标准排序呢?
从结果来看,好像以第一个字段排序。不知道我的理解对没有,请各位指点一下,感谢。 |