使用awk,如何找到一列中的最大值并打印它;然后在另一列中打印匹配值

Die*_*go 4 awk if-statement max

假设我有这些数据:

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
Run Code Online (Sandbox Code Playgroud)

我使用以下代码获取第 5 列的最大值:

awk 'BEGIN {a=0} {if ($5>0+a) a=$5} END{print a}' data.txt
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在该代码中添加更多参数,以便在我选择的任何列(但只有一列)中找到关联的值?例如,我想找到第 5 列的最大值以及第 2 列的关联值

我想要的输出是:

50 text4
Run Code Online (Sandbox Code Playgroud)

我不知道如何添加更多参数以获得匹配值。

anu*_*ava 5

正确的方法是这样的awk

awk 'NR==1 || $5>max { max=$5; val=$2 } END { print max, val }' file

50 text4
Run Code Online (Sandbox Code Playgroud)

这设置max=$5andval=$2为第一条记录或$5大于max变量时。