awk 문제: "열 조건인 경우"가 열 항목을 대체합니다!

awk 문제: "열 조건인 경우"가 열 항목을 대체합니다!

awk를 마스터하려고 합니다.

입력이 있다고 가정해 보겠습니다.

this header
fred blah 1 blank
fred blah 1 blank
huh blah 2 blank
fred blah 3 blank
fred blah 3 blank

다음 awk 스크립트를 사용한 후,

#!/usr/bin/awk -f
{
    if ( NF <=2 ) {
            print $0
    };
    if ( NF>=3 && $3=1)
     {
            print $0
    }
}

나는 다음과 같은 결과를 얻을 것으로 예상합니다.

this header
fred blah 1 blank
fred blah 1 blank

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

this header
fred blah 1 blank
fred blah 1 blank
huh blah 1 blank
fred blah 1 blank
fred blah 1 blank

그 중 3달러는 조건으로 전환되었습니다.

왜 이런 일이 발생합니까?

원하는 출력을 얻으려면 awk 스크립트를 어떻게 조정해야 합니까?

답변1

오해 하지마

a = b

그리고

a == b

if ( )테스트 하는 경우에도 a = bb 값은 a로 설정됩니다. ( a 가 인 경우에도 $3).

다음과 같이 작성해야 합니다.

$3 == 1

관련 정보