2

我只想按数字顺序按第二列中的第二个字符对文件进行排序。示例文件如下:

aa 19
aa 189
aa 167
ab 13
nd 23
at 32
ca 90

我希望结果像

ca 90
at 32
ab 13
nd 23
aa 167
aa 189
aa 19

我使用命令sort -n -k 2.2,2.2 [filename]。但它向我展示了这样的结果:

aa 167
aa 189
aa 19
ab 13
nd 23
at 32
ca 90

这不是正确的答案。有人知道我的命令有什么问题吗?

4

2 回答 2

3

问题是您没有指定正确的列分隔符,并sort假定它是制表符而不是空格。

sort -t ' ' -nk 2.2

工作得很好。

编辑:在我的man页面中,它说默认情况下任何空格都被视为分隔符,但事实是添加-t ' '解决了它。

于 2012-10-20T21:04:03.127 回答
0
sort -t ' ' -k2.2,2.2 filename
于 2012-10-20T21:06:05.317 回答