为什么这"排序"命令不起作用?

时间:2016-06-08 19:31:08

标签: shell sorting awk sed

我想对此文件进行排序:

[ichen@ui02 ~]$ cat file
root_1down 20 root_EG 1195597
root_2down 19 root_EG 1340493
root_2down 1 root_EG 4136169

我希望输出是数字顺序,所以这是我想要的结果:

root_1down 20 root_EG 1195597
root_2down 1 root_EG 4136169
root_2down 19 root_EG 1340493

那么,我如何才能获得我想要的正确订单呢?

**Supply:**

根据@ Cyrus的命令成功:sort -t " " -k1,1 -k2,2n file 但是,当我交换第一个单词和第二个单词的值时:

[ichen@ui05 ~]$ cat file
20 root_1down root_EG 1195597
19 root_2down root_EG 1340493
1 root_2down root_EG 4136169

这次我希望得到相同的结果,我希望先按第二个单词排序,然后按第一个单词排序,输出预期与上面相同。但是,输出不是我的预期:

[ichen@ui05 ~]$ sort -t " "  -k2,1 -k1,2n file
1 root_2down root_EG 4136169
19 root_2down root_EG 1340493
20 root_1down root_EG 1195597

第二个单词没有按我预期的方式排序。

1 个答案:

答案 0 :(得分:4)

使用GNU排序:

sort -t " " -k1,1 -k2,2n file

输出:

root_1down 20 root_EG 1195597
root_2down 1 root_EG 4136169
root_2down 19 root_EG 1340493