推理'sort'核心util的密钥(-k)语法

时间:2015-10-01 11:12:55

标签: linux bash shell

在shell中使用sort函数时,如果仅通过一个字段进行排序,-k选项的首选语法似乎是-k5n,5。在这种情况下,5的优势是什么? -k5n的作用相同,或者至少对我而言。

参考文献:

  1. The man page seems to prefer this but also suggests it is optional
  2. This answer seems to prefer this syntax too

2 个答案:

答案 0 :(得分:2)

假设您的数据包含N个字段。 -k5n相当于-k5,Nn,这意味着数据将使用字段5到N作为关键字进行排序。这可能是不可取的,例如,如果您想要一个稳定的排序,它不会修改输入中记录的相对顺序,并且第5个字段的值相等。使用-k5,5n可以明确表示您只想对第5个字段进行排序。

答案 1 :(得分:0)

第二个键指定停止位置,默认为行尾。

所以你可以省略它,并且通常没有实际的区别,但是,例如,如果你使用-u选项只输出具有唯一键匹配的行,那么它可能很重要。

此外,您可以使用多个-k选项指定多个关键部分,因此在这种情况下,您需要指定关键部分的终点。

可能还有其他重要事件。