In awk, how can I make a boolean value that I can toggle it

awk

In other programming languages there often has a bool or boolean type. I can create a boolean type variable and use the not operator to toggle it. I can toggle it many times and get a series of true, false, true, false …

In awk there is no boolean type. Only empty string and the number 0 are considered false. All other values are true. In this case what should I do if I want to do operation A on line 1, 3, 5… and operation B on line 2, 4, 6… The task will very easy if we have a boolean type variable and I can simply not it.

Best Answer

see How does awk '!a[$0]++' work?

basically use a=!a this will negate a turning 0 to 1 and 1 to 0.

you can test with

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