Awk 从模式中分离动作
考虑:Awk 从模式中分离动作,awk,Awk,考虑: $ echo line1 | awk '1END{ print "line2"}' line1 line2 注意1和END之间缺少空格。这是标准,还是我实现awk的一个怪癖?将操作与以下地址分开的语法规则是什么?您可能使用的是旧版本的awk。在原始的awk语言中,不需要在同一行上用分号分隔规则。添加它是为了与操作中对语句的处理保持一致 我发现: 这适用于我使用GNU Awk 4.0.1的情况: $ echo line1 | awk '1; END { print "line2" }'
$ echo line1 | awk '1END{ print "line2"}'
line1
line2
注意
1
和END
之间缺少空格。这是标准,还是我实现awk的一个怪癖?将操作与以下地址分开的语法规则是什么?您可能使用的是旧版本的awk
。在原始的awk
语言中,不需要在同一行上用分号分隔规则。添加它是为了与操作中对语句的处理保持一致
我发现:
这适用于我使用GNU Awk 4.0.1的情况:
$ echo line1 | awk '1; END { print "line2" }'
line1
line2
如果我删除
代码>我得到一个语法错误。HTH什么平台和什么版本的AWK?我从Linux上的gawk
、nawk
和mawk
中得到一个语法错误。这是OSX上的awk。(来自内存:awk-v打印了类似于awkversion2007….
的内容,也许我会在今天晚些时候访问机器时更新注释。)在没有任何空间的情况下,gawk3.1.3不会给出语法错误,只会执行END
块。在1后面插入分号对我使用gawk
3.1.6和3.1.7是有效的。在这些版本上,空格或无空格会给我一个语法错误。显示此行为的版本是BSD(OS X)上的awk版本20070501