当awk脚本在花括号外面有代码时,它是什么意思?

时间:2016-07-26 17:15:33

标签: awk

通过awk教程,我遇到了这一行

substr($0,20,5) == "HELLO" {print} 

如果有" HELLO"则打印一行。字符串从20 char开始。

现在我认为在awk脚本的开头和“如果'为了这个工作,但它仍然可以工作。

有人可以解释一下它的评估方式吗?

1 个答案:

答案 0 :(得分:4)

如果你有:

{ action }

...然后该行动在每一行上运行。相比之下,如果你有:

condition { action }

...然后该操作仅针对条件为真的行运行。

最后,如果您只有 条件,则默认操作为print

NR % 2 == 0

...因此将打印所有其他行。

您可以在一个脚本中同样拥有多个对:

condition1 { action1 }
condition2 { action2 }
{ unconditional_action }

...还可以有BEGINEND块,它们在执行的开始和结束时运行。