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

Jus*_*ner 5 awk

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

在 awk 中没有布尔类型。只有空字符串和数字 0 被认为是假的。所有其他值均为真。在这种情况下,如果我想在第 1、3、5 行上执行操作 A 和在第 2、4、6 行上执行操作 B,我该怎么办……如果我们有一个布尔类型变量,那么任务将非常容易我可以简单的not

Arc*_*mar 8

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

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

你可以测试

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