Awk 选择表中的最高值

Awk 选择表中的最高值,awk,sed,Awk,Sed,一个文件,有三列,标签分开。我想从第3列(与第1列同名)中选择最高值,并打印为第4列 输入文件 A l 10 A l 2 A m 6 B l 12 B m 13 B n 7 C l 9 C l 8 C n 19 输出文件 A l 10 10 A

一个文件,有三列,标签分开。我想从第3列(与第1列同名)中选择最高值,并打印为第4列

输入文件

A       l       10
A       l       2
A       m       6
B       l       12
B       m       13
B       n       7
C       l       9
C       l       8
C       n       19
输出文件

A       l       10      10
A       l       2       10
A       m       6       10
B       l       12      13
B       m       13      13
B       n       7       13
C       l       9       19
C       l       8       19
C       n       19      19

请您推荐awk或sed命令。谢谢

您可以使用这个
awk

awk 'FNR==NR {arr[$1]=arr[$1]>$3?arr[$1]:$3;next} {print $0,arr[$1]}' OFS="\t" file{,}
A       l       10      10
A       l       2       10
A       m       6       10
B       l       12      13
B       m       13      13
B       n       7       13
C       l       9       19
C       l       8       19
C       n       19      19
这将在
文件上传递两次。第一次查找最高值,在“打印”旁边。

文件{,}
使文件名加倍。您也可以使用
文件

这些数字总是正值吗?来自@Ashkan的优秀、深刻、影响解决方案的问题!