我有一个混合列的文件,我正在尝试对前面的前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
如何正确排序此文件并且没有这些未分类的文件?
答案 0 :(得分:2)
您应该首先对第1列到第5列的文件进行排序,并且当您将column1-4视为关键时,应通过比较key的值(即column1-4)来清除任何关系
sort -rk1,5 -nk1,4 file1.txt
答案是:
AAAA 3 X W 0.05
AAAA 3 X Q 0.40
AAAA 3 X E 0.23
AAAA 3 C Q 0.33
AAAA 2 X W 0.55
AAAA 2 X W 0.45
AAAA 2 X Q 0.20
AAAA 2 X Q 0.20
AAAA 2 X E 0.27
AAAA 2 X E 0.21
AAAA 2 C W 0.92
AAAA 2 C W 0.82
AAAA 2 C Q 0.24
AAAA 2 C Q 0.24
AAAA 2 C E 0.04
AAAA 2 C E 0.0001