据我了解,在 awk 中,可以使用以下任一方法开始条件评估:
if ($0 ~ /no/) {cmd}
($0 ~ /no/) {cmd}
$0 ~ /no/ {cmd}
/no/ {cmd}
在通用命令行中
BEGIN { } (body) END { }
我发现将 (body) 括在括号中是最合乎逻辑的,例如 {(body} (称为“括号”)。
在 GNU awk、Ubuntu 12.04 下,如果括号括起来,则只有 4 个选项中的第一个会执行 - 至少在我的机器上(其他选项会产生语法错误)。如果我不加括号地运行该行,则只有第一个失败,其余 3 个工作正常。有人可以仔细解释为什么会这样吗?