awk에서 전환할 수 있는 부울 값을 생성하는 방법은 무엇입니까?

awk에서 전환할 수 있는 부울 값을 생성하는 방법은 무엇입니까?

bool다른 프로그래밍 언어에는 일반적으로 or 유형이 있습니다 boolean. 부울 유형 변수를 생성하고 not연산자를 사용하여 이를 전환할 수 있습니다. 여러 번 전환하여 일련의 참, 거짓, 참, 거짓을 얻을 수 있습니다.

awk에는 부울 유형이 없습니다. 빈 문자열과 숫자 0만 false로 간주됩니다. 다른 모든 값은 true입니다. 이 경우 1, 3, 5번 라인에서 A 작업을 수행하고 2, 4, 6번 라인에서 B 작업을 수행하려면 어떻게 해야 합니까? 부울 유형 변수가 있고 간단히 다음과 같이 not말할 수 있습니다.

답변1

바라보다awk '!a[$0]++'는 어떻게 작동하나요?

기본적으로 이것을 사용하면 0에서 1로, 1에서 0으로 가는 것이 a=!a무효화됩니다 .a

당신은 테스트할 수 있습니다

ls | awk '{a=!a; if ( a ) printf "good %s\n",$0 ; else printf "bad\n";}'

관련 정보