You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用awk获取指定列最大值并输出对应其他列关联值

问题:获取指定列最大值及其关联列值

给定如下数据(保存为data.txt):

1  text1  1   1   5
2  text2  2   2   10 
3  text3  3   3   15
4  text4  4   4   50
5  text5  5   5   25

原本可以用这段代码获取第5列的最大值:

BEGIN {a=0} {if ($5>0+a) a=$5} END{print a} data.txt

现在需要修改代码,同时获取该最大值对应的第2列内容,期望输出为:

50 text4

解决方案

只需要新增一个变量来保存最大值对应的第2列内容,修改后的代码如下:

BEGIN {a=0} {if ($5 > a) {a=$5; b=$2}} END{print a, b} data.txt

思路说明

  • 新增变量b,用来存储当前最大值对应的第2列文本
  • 当遍历到某一行的第5列值大于当前记录的最大值a时,同时更新最大值a和关联的第2列内容b
  • 遍历结束后,在END块里同时打印最大值a和对应的第2列内容b

如果存在多行第5列值同为最大值的情况,上述代码会保留最后一次出现的关联列值;若想保留第一次出现的,只需把判断条件改为$5 >= a即可。

内容的提问来源于stack exchange,提问作者Diego

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 10:05:14