gpt4 book ai didi

linux - 根据前 n 列降序对行进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:11 27 4
gpt4 key购买 nike

我有一个包含混合列的文件,我试图通过将前 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

如何在没有这些未排序文件的情况下正确排序此文件?

最佳答案

您应该首先将文件从第 1 列排序到第 5 列,因为您将第 1-4 列视为键,因此应通过比较键的值(即第 1-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

关于linux - 根据前 n 列降序对行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48361395/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com