В awk, как я могу сделать логическое значение, которое я могу переключить?

В других языках программирования часто используется тип bool или boolean . Я могу создать переменную типа boolean и использовать оператор not для переключения. Я могу много раз переключаться и получать серию истинных, ложных, истинных, ложных …

В awk нет булевского типа. Только пустая строка и число 0 считаются ложными. Все остальные значения верны. В этом случае, что мне делать, если я хочу выполнить операцию A в строке 1, 3, 5 … и операции B в строке 2, 4, 6 … Задача будет очень простой, если у нас есть переменная типа boolean и Я просто not .

см. Как работает awk '! a [$ 0] ++?

в основном используйте a=!a это отрицает поворот 0 на 1 и 1 на 0.

вы можете протестировать

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