按列排序文件Linux

问题描述:

所以我在这里看到很多排序问题,我希望有人能够清理我自己的问题。我有一个看起来像这样的文件:按列排序文件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. 

它是什么,我做错了什么?

如何:

[[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