【发布时间】:2014-11-25 18:33:21
【问题描述】:
我在对包含这些行的文件 (badsort.small) 进行排序时遇到问题:
0 foo 30
0 foo/bar 26
0 foo/bar 2b
0 foo/bar 30
0 foo/bar 73
0 foo/bar 91
0 foo/bar d3
以下排序给出了奇怪的结果:
排序 -nk1,1 -k2,2 -k3,3 badsort.small
0 foo/bar d3
0 foo/bar 2b
0 foo/bar 26
0 foo 30
0 foo/bar 30
0 foo/bar 73
0 foo/bar 91
相当于排序-nk3,3。 这些命令正确排序:
- 排序 -k1,1 -k2,2 -k3,3
- 排序 -nk1,1 -k2,3
- 排序 -k2,2 -k3,3
这个请求是什么导致错误的参数变成数字并占上风?有没有办法避免它?我正在以编程方式生成排序参数,虽然在这种情况下我可以组合相邻的字段,但我不确定我不会再遇到这种情况。
在 linux 3.2.0-70-generic 和 osx 10.9.5 上转载。
【问题讨论】:
-
预期输出是什么?
-
排序不会做十六进制,你有“-n”作为所有字段的选项
-
预期输出与开始相同 - 但问题在下面回答。