如何处理排序命令列选项

如何处理排序命令列选项

我有一个像这样的文件

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,按数字顺序,则相反。请参阅联机帮助页了解当字段被视为数字时意味着什么。

相关内容