gpt4 book ai didi

unix - Linux : How to AWK to find maximums in every unique line

转载 作者:行者123 更新时间:2023-12-05 08:47:40 24 4
gpt4 key购买 nike

我有这个记录的文件
我的文件.txt :

firstname lastname note 
Ben Quick 12
Fred Free 10
Mark Marked 18
Mark Marked 20
Ben Quick 8

并想用他最大的音符打印每个独特的人
结果会是这样

firstname lastname maxNote
Ben Quick 12
Fred Free 10
Mark Marked 20

所以我有这个 awk 脚本

#!/bin/awk -f


BEGIN {
print "firstname lastname maxNote"
}

NR > 1 {
list[$1," ",$2]++
}

END {
for(l in list)
print l
}

它只打印唯一的名字+姓氏
我的问题是:如何按音符对它们进行排序并打印每行的整行?

感谢您的帮助!

最佳答案

使用 GNU awk:

awk 'NR==1{print; next}
{
note=$NF # save note from last field
NF-- # remove last field from $0
name=$0
if(a[name]<note){a[name]=note}
}
END{
for(i in a){print i,a[i]}
}' file

输出:

firstname lastname note Fred Free 10Ben Quick 12Mark Marked 20

参见:8 Powerful Awk Built-in Variables – FS, OFS, RS, ORS, NR, NF, FILENAME, FNR

关于unix - Linux : How to AWK to find maximums in every unique line,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67114476/

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