linux在列内排序

时间:2012-10-20 20:52:55

标签: linux sorting field

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

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

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

2 个答案:

答案 0 :(得分:3)

问题是你没有指定正确的列分隔符,sort假设它是标签而不是空格。

sort -t ' ' -nk 2.2

工作正常。

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

答案 1 :(得分:0)

sort -t ' ' -k2.2,2.2 filename