Unix awk, 플래그 함수, 다중 if 조건

Unix awk, 플래그 함수, 다중 if 조건

나는 큰 문서를 가지고 있고 두 가지 모드로 작업하기 위해 flag 명령을 사용하고 있습니다.

/Nodes/ {f=1} /EndNodes/ {f=0}

원하는 출력을 얻었으므로 이제 출력으로 20, 31, 32를 얻도록 필터링해야 합니다. 나는 다음 명령을 사용하고 있습니다 :

{if ($2 + 0 >= 0 && $3 + 0 == 0 && max = $4)
{print $1}}

그러나 나는 다음과 같은 결과를 얻습니다.

20,31,32,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34.

18부터 34까지의 숫자가 조건을 만족한다는 점에 유의하세요 max = $4. 어떤 제안이 있으십니까?

답변1

Steeldriver가 지적했듯이 싱글은 =할당하려는 값인 값을 생성하는 할당 작업입니다. 값이 양수인 경우(숫자 18~34에 표시됨)awk에서는 "true"인 양수입니다.

과제가 아닌 비교 테스트가 되도록 으로 max = $4변경 하면 됩니다 .max == $4

관련 정보