在 awk 中,如何创建一个可以切换的布尔值?

在 awk 中,如何创建一个可以切换的布尔值?

在其他编程语言中通常有boolorboolean类型。我可以创建一个布尔类型变量并使用not运算符来切换它。我可以多次切换它并得到一系列的真,假,真,假......

awk 中没有布尔类型。只有空字符串和数字 0 才被视为 false。所有其他值均为 true。在这种情况下,如果我想在第 1、3、5 行执行操作 A,在第 2、4、6 行执行操作 B,该怎么办?如果我们有一个布尔类型变量并且我可以简单的not说一下

答案1

awk '!a[$0]++' 是如何工作的?

基本上使用a=!a这个将否定a从 0 到 1 和 1 到 0。

你可以测试

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

相关内容