【发布时间】:2018-01-20 21:41:51
【问题描述】:
我有一个包含混合列的文件,我正在尝试对行进行排序,将前 4 个字段保留为键,然后根据第 5 列将它们按降序排序:
file1.txt
AAAA 2 X Q 0.20
AAAA 2 X W 0.45
AAAA 2 X E 0.21
AAAA 2 C Q 0.24
AAAA 2 C W 0.92
AAAA 2 C E 0.0001
AAAA 2 X Q 0.20
AAAA 2 X W 0.55
AAAA 2 X E 0.27
AAAA 2 C Q 0.24
AAAA 2 C W 0.82
AAAA 2 C E 0.04
AAAA 3 X Q 0.40
AAAA 3 X W 0.05
AAAA 3 X E 0.23
AAAA 3 C Q 0.33
最后我想要的是:
AAAA 2 X Q 0.20
AAAA 2 X Q 0.20
AAAA 2 X W 0.55
AAAA 2 X W 0.45
AAAA 2 X E 0.27
AAAA 2 X E 0.21
AAAA 2 C Q 0.24
AAAA 2 C Q 0.24
AAAA 2 C W 0.92
AAAA 2 C W 0.82
AAAA 2 C E 0.04
AAAA 2 C E 0.0001
AAAA 3 X Q 0.40
AAAA 3 X W 0.05
AAAA 3 X E 0.23
AAAA 3 C Q 0.33
对于这个,我正在对文件进行排序并将前 4 个字段保留为键:
sort -rnk1,4 -rnk5 file1.txt
但是,它没有完全排序,因为我想将相同的前 4 个字段放在一起,在其输出中,其中一个(标有 ** 以显示它)位于不同的位置:
AAAA 2 X Q 0.20
AAAA 2 X W 0.55
AAAA 2 X W 0.45
AAAA 2 X E 0.27
AAAA 2 X E 0.21
AAAA 2 X Q 0.20 ******
AAAA 2 C Q 0.24
AAAA 2 C Q 0.24
AAAA 2 C W 0.92
AAAA 2 C W 0.82
AAAA 2 C E 0.04
AAAA 2 C E 0.0001
AAAA 3 X Q 0.40
AAAA 3 X W 0.05
AAAA 3 X E 0.23
AAAA 3 C Q 0.33
如果没有这些未排序的文件,我怎样才能正确排序这个文件?
【问题讨论】:
-
问题是您的字段 4 与其他 5 没有排序关系。相对于其他两个,它既没有按升序或降序排序。您可以通过
sort -k1,2 -k3r -k5r file1.txt接近,但字段 4 没有任何帮助。 -
@bapors,这个答案能解决你的问题吗?
-
是的,现在接受答案!