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 = b
b 값은 a로 설정됩니다. ( a 가 인 경우에도 $3
).
다음과 같이 작성해야 합니다.
$3 == 1