awk 如何只打印每条记录的最大值?

awk 如何只打印每条记录的最大值?

我有这样的输入;我需要过滤更大的记录值

猫;5
狗;3
鸟;2
猫;3
狗;6
鸟;8

输出这样的结果

猫;5
狗;6
鸟;8

答案1

请尝试以下操作:

#!/usr/bin/awk -f

BEGIN {
  FS = OFS = ";";
}

{
  if($2 > a[$1]) { a[$1] = $2 }
  else { a[$1] = $2 }
}

END {
  for(x in a) { print x, a[x] }
}

相关内容