gpt4 book ai didi

bash - awk:保留最高值的记录,比较共享其他字段的记录

转载 作者:行者123 更新时间:2023-11-29 09:47:27 25 4
gpt4 key购买 nike

我正在尝试编写一个 awk 脚本来保留给定字段中具有最高值的记录,但只比较共享其他两个字段的记录。

我最好举个例子 -- 这是 input.txt:

X A 10.00
X A 1.50
X B 0.01
X B 4.00
Y C 1.00
Y C 2.43

我想比较第一个和第二个字段(X A、X B 或 Y C)中具有相同值的所有记录,并在第三个字段中选择具有最高数值的记录。

所以,我期望这样的输出:

X A 10.00
X B 4.00
Y C 2.43

通过这个片段,我可以在第三个字段中选择最大值的记录(但它没有考虑前面的字段,也没有输出它们):

awk 'BEGIN {max = 0} {if ($2>max) max=$2} END {print max}' input.txt

当前(不需要的)输出:

10.00

有什么想法吗?我可以使用 gawk。

提前致谢!

最佳答案

你可以使用这个 awk:

awk '{k=$1 OFS $2} $3>a[k]{a[k]=$3} END{for (i in a) print i, a[i]}' file
X A 10.00
X B 4.00
Y C 2.43

关于bash - awk:保留最高值的记录,比较共享其他字段的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29239080/

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