![如何处理排序命令列选项](https://linux22.com/image/47664/%E5%A6%82%E4%BD%95%E5%A4%84%E7%90%86%E6%8E%92%E5%BA%8F%E5%91%BD%E4%BB%A4%E5%88%97%E9%80%89%E9%A1%B9.png)
我有一个像这样的文件
1.2.3.4
1.1.1.1
4.5.6.7
1.1.3.5
当我给
sort -t. -k3 inp3
1.1.1.1
1.2.3.4
1.1.3.5
4.5.6.7
当我给
sort -t. -k3,3 inp3
1.1.1.1
1.1.3.5
1.2.3.4
4.5.6.7
第二列和第三列不同。我可以看到很多关于这个 k 选项的问题和答案。当我给出 -k3 时,因为第三列为
1.1.3.5
1.2.3.4
考虑相同的第四列。
给予时有什么区别
sort -n -t. -k3 inp3
答案1
的用法-k
是:
-k field_start[type][,field_end[type]]
如果省略最后一个字段,则使用起始字段中的所有字段。无论如何,次要字段用于按顺序打破平局。
因此,当您这样做时-k3
,字段 3 和 4 用于排序,字段 4 用于平局打破。对于-k3,3
,仅使用字段 3 - 其他字段将被忽略。所以你的结论是正确的。
-n
本身指定意味着所有字段都被视为数字并相应地排序。按字母顺序(更确切地说,按字典顺序),2
位于 后面102
,按数字顺序,则相反。请参阅联机帮助页了解当字段被视为数字时意味着什么。