【发布时间】:2023-03-08 19:05:01
【问题描述】:
我的文件为(间距可能不规则)
a 34 4
b 34 5
c 4 123
d 100 34
e 1 23
现在如何根据列获取具有最大值的行,例如使用 bash 脚本的第二列。 输出应该是:
d 100 34
【问题讨论】:
我的文件为(间距可能不规则)
a 34 4
b 34 5
c 4 123
d 100 34
e 1 23
现在如何根据列获取具有最大值的行,例如使用 bash 脚本的第二列。 输出应该是:
d 100 34
【问题讨论】:
即使您的所有键值都是负数,这也会起作用,并且如果您的输入文件为空,则不会打印空行:
$ awk '(NR==1) || ($2 > max){max=$2; rec=$0} END{if (NR) print rec}' file
d 100 34
【讨论】:
你可以使用这个 awk:
awk '$2 > max{max=$2; r=$0} END{print r}' file
d 100 34
【讨论】:
awk 的替代方案:
sort -k2nr file | head -1
【讨论】: