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] }
}

관련 정보