1
通过一个awk教程去,我碰到这条线当awk脚本在大括号外包含代码时,这意味着什么?
substr($0,20,5) == "HELLO" {print}
打印一行是否有“HELLO”字符串起始于20字符。
现在我认为花括号在awk脚本开始时是必要的,并且这个工作可以使用'if',但它仍然没有工作。
有些人可以解释它如何评估?
通过一个awk教程去,我碰到这条线当awk脚本在大括号外包含代码时,这意味着什么?
substr($0,20,5) == "HELLO" {print}
打印一行是否有“HELLO”字符串起始于20字符。
现在我认为花括号在awk脚本开始时是必要的,并且这个工作可以使用'if',但它仍然没有工作。
有些人可以解释它如何评估?
如果您有:
{ action }
...那么该动作在每一行运行。相反,如果您有:
condition { action }
...然后该操作仅针对条件为真的行运行。
最后,如果你有只一个条件,则默认操作为print
:因此
NR % 2 == 0
...将打印每隔一行。
你同样可以拥有多对在一个脚本:
condition1 { action1 }
condition2 { action2 }
{ unconditional_action }
...,也可以有BEGIN
和END
块,这在执行的开始和结束时运行。
正如回答指出'{print}'部分在这里是多余的 –
停止猜测语法,并阅读Arnold Robbins编写的Effective Awk Programming第4版。 –