按列排序文件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
此规定第八场作为主键和第九作为辅助。
非常感谢!现在,我很难从手册页中了解到一件事,那就是为什么你必须用-k8,8指定8到8?我只是觉得它有点挑剔/多余? – Stephopolis 2013-04-08 17:26:34
@Stephopolis从8日开始到8日结束。如果你省略了结尾8,它将假定“到行尾”。 – cnicutar 2013-04-08 17:29:58
啊!我明白这解释了我所看到的。再次,非常感谢。 – Stephopolis 2013-04-08 17:31:55