2016-06-08 58 views
-1

我要排序此文件:为什么这个“排序”命令不起作用?

[[email protected] ~]$ 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:** 

它根据@命令成功赛勒斯:sort -t " " -k1,1 -k2,2n file 但是,当我换第一个字和第二字的值:

[[email protected] ~]$ cat file 
20 root_1down root_EG 1195597 
19 root_2down root_EG 1340493 
1 root_2down root_EG 4136169 

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

[[email protected] ~]$ 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 

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

+0

你想要的结果将首先由嵌入数第一列内进行排序,然后在第二列中的数字? – dawg

+0

@dawg不是嵌入的数字,但整个词包含数字。事实上,有成千上万的行,其中许多具有不同的第一个词但嵌入的数字相同,所以我想按整个第一个词排序 –

+0

您在文件中交换了列而不是排序键(嗯,您交换了键但不正确!)。 'sort -t“”-k2,2 -k1,1n file'应该给出预期的输出。 –

回答

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 
+0

我编辑了这个问题,当我交换第一个单词和第二个单词时,它不起作用,我使用了命令'sort -t“”-k2,1 -k1,2n文件“,详细问题已更新。你能看看吗? –

+0

我建议回滚您的更改并开始一个新问题。 – Cyrus