与之间的区别;没有;在 awk 命令的表达中

Difference between with ; and without ; in expression of awk command

我有一个关于 awk 的问题,命令:

awk 'NR!=1 {print [=10=]}' FILENAMEawk 'NR!=1;{print [=11=]}' FILENAME 会产生不同的结果。

我想知道 expression.Thanks

中有 ; 和没有 ; 有什么区别

awk 程序是 pattern/action 对的序列。节目

awk 'NR!=1 {print [=10=]}'

NR!=1 为真但

的任何记录执行命令 {print [=13=]}
awk 'NR!=1;{print [=11=]}'

有 2 个模式动作对。第一个是带有默认操作的 NR!=1(因为没有指定操作)。默认操作是打印,因此该对打印除第一个以外的所有记录。第二个 pattern/action 对没有模式,所以它总是执行,打印每条记录。

也许将第二个重写为:

awk 'NR!=1{print}
1{print [=12=]}'

使两个 pattern/action 对显式化。