Awk 选择表中的最高值
一个文件,有三列,标签分开。我想从第3列(与第1列同名)中选择最高值,并打印为第4列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
输入文件
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的优秀、深刻、影响解决方案的问题!