2013-04-08 87 views
1

所以我在這裏看到很多排序問題,我希望有人能夠清理我自己的問題。我有一個看起來像這樣的文件:按列排序文件Linux

data dd 0.0 96 157 KL 71 X 6947 
data fb 0.0 11 3R2 HD 13 1 1850 
data bx 0.0 14 352 FG 12 X 4810 
data bh 0.0 13 3GF FH 1T 1 6840 
data fb 0.0 11 3R2 HD 13 1 1325 
etc. 

我想由第8和第9行的文件,以使輸出是這樣進行排序:

data bx 0.0 14 352 FG 12 X 4810 
data dd 0.0 96 157 KL 71 X 6947 
data fb 0.0 11 3R2 HD 13 1 1325 
data fb 0.0 11 3R2 HD 13 1 1850 
data bh 0.0 13 3GF FH 1T 1 6840 
etc. 

我已經試過

排序-n -k7 -k8文件> newfile中

但是,排序僅這麼多:

data dd 0.0 96 157 KL 71 X 6947 
data bx 0.0 14 352 FG 12 X 4810 
data fb 0.0 11 3R2 HD 13 1 1850 
data bh 0.0 13 3GF FH 1T 1 6840 
data fb 0.0 11 3R2 HD 13 1 1325 
etc. 

所以,我想:

> sort -n -k8 -k9 file > newfile 

但這只是使情況變得更糟

data dd 0.0 96 157 ZL 71 P 69412217 
data fb 0.0 11 3R2 HX 13 1 185135150 
data bx 0.0 14 352 FG 12 X 4810 
data bh 0.0 13 3GF FH 1T 1 6840 
data fb 0.0 11 3R2 HY 13 L 132321355 
etc. 

我也嘗試:

排序-n -k8,9文件> newfile中

但這似乎並不可靠,因爲它無LD做一些正確成一排,但隨後在一些隨機的傢伙扔:

data dd 0.0 96 157 KL 71 X 6947 
data bx 0.0 14 352 FG 12 26 443810 
data fb 0.0 11 3R2 HD 13 1 1850 
data bh 0.0 13 3GF FH 1T 1 6840 
data bx 0.0 14 352 FG 12 2 465310 
data fb 0.0 11 3R2 HD 13 1 1325 
etc. 

它是什麼,我做錯了什麼?

回答

2

如何:

[[email protected] ~]$ sort -n -k8,8 -k9,9 tos 

data bx 0.0 14 352 FG 12 X 4810 
data dd 0.0 96 157 KL 71 X 6947 
data fb 0.0 11 3R2 HD 13 1 1325 
data fb 0.0 11 3R2 HD 13 1 1850 
data bh 0.0 13 3GF FH 1T 1 6840 

此規定第八場作爲主鍵和第九作爲輔助。

+0

非常感謝!現在,我很難從手冊頁中瞭解到一件事,那就是爲什麼你必須用-k8,8指定8到8?我只是覺得它有點挑剔/多餘? – Stephopolis 2013-04-08 17:26:34

+1

@Stephopolis從8日開始到8日結束。如果你省略了結尾8,它將假定「到行尾」。 – cnicutar 2013-04-08 17:29:58

+0

啊!我明白這解釋了我所看到的。再次,非常感謝。 – Stephopolis 2013-04-08 17:31:55