열의 최대값을 포함하는 행의 다음 값을 어떻게 인쇄합니까?

열의 최대값을 포함하는 행의 다음 값을 어떻게 인쇄합니까?

열의 최대값을 포함하는 행의 다음 값을 어떻게 인쇄합니까?

for f in a*; do 
    awk 'BEGIN{a=   0}{if ($2>0+a) a=$2}{if($2 = a) b=$1} END{print FILENAME, b}' "$f"
done

ㅏ*

4 5
6 6
5 5.5
7 55

원하는 결과

a45 7 

답변1

반복되는 키 필드의 첫 번째 값을 인쇄할지 마지막 값을 인쇄할지 여부에 따라 이를 수행하는 올바른 방법은 마지막 값을 인쇄하는 것입니다.

awk 'NR==1{max=$2} $2>=max{max=$2; val=$1} END{print FILENAME, val}' "$f"

또는 첫 번째 것을 인쇄하십시오.

awk 'NR==1{max=$2; val=$1} $2>max{max=$2; val=$1} END{print FILENAME, val}' "$f"

관련 정보