![awk에서 각 레코드의 최대값만 인쇄하는 방법은 무엇입니까?](https://linux55.com/image/107614/awk%EC%97%90%EC%84%9C%20%EA%B0%81%20%EB%A0%88%EC%BD%94%EB%93%9C%EC%9D%98%20%EC%B5%9C%EB%8C%80%EA%B0%92%EB%A7%8C%20%EC%9D%B8%EC%87%84%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
이와 같은 입력이 있습니다. 더 큰 레코드 값을 필터링해야 합니다.
고양이 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] }
}