gpt4 book ai didi

Linux;对数据进行排序并仅打印一列的最大值

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

在 linux 中,我尝试根据第一列和第二列对数据进行排序,并仅打印第三列中具有最高值的行。我的数据看起来像

A 1 75.0
A 1 99.0
A 2 68.0
B 1 66.0
B 1 50.0
B 2 75.0
B 2 80.0

“键”位于第 1 列和第 2 列,当第 1 列和第 2 列的数据相等时,我只想打印第 3 列中具有最高值的行,如下所示

A 1 99.0
A 2 68.0
B 1 66.0
B 2 80.0

我试着用排序来做到这一点, sort -k1,1 -k2,2 ,但是我怎样才能改变它只打印第 3 列中具有最高值的行的命令?

最佳答案

您可以只使用一个 Awk 解决方案,而不是在 sort 中组合多个选项标志

awk 'unique[$1FS$2]<$3{unique[$1FS$2]=$3; next}END{for (i in unique) print i,unique[i]}' file

我们的想法是,我们创建哈希表,其中前两列为键,表名是唯一,键是$1FS$2,然后我们添加最大值每个唯一键到表中,一旦所有的谎言都被打印出来,我们就在 END 子句中打印哈希表。

关于Linux;对数据进行排序并仅打印一列的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47410877/

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