2016-06-08 63 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