带或不带{}的awk打印?

带或不带{}的awk打印?,awk,Awk,我有样本数据 Person Owe John 1 John 2 John -1 John -10 John 5 John 9 John -4 John 9 John 2 John 3 我使用脚本文件来解析它,命令是 awk-f脚本数据 ,脚本内容: NR == 2 { print "Starting Here"; x = $2; next} {x+= $2} #This x+=$2 END{ print x }

我有样本数据

Person  Owe
John    1
John    2
John    -1
John    -10
John    5
John    9
John    -4
John    9
John    2
John    3
我使用脚本文件来解析它,命令是
awk-f脚本数据
,脚本内容:

NR == 2 { print "Starting Here"; x = $2; next}
{x+= $2} #This x+=$2
END{ print x }
输出:

Starting Here
16
但是当我从
{x+=$2}
输出:


Q) 如果变量加法周围没有
{}
,为什么要打印?

回答自己的问题:

规则需要行动。如果缺少操作,则默认为打印该行。
仅仅提到
x+=$2
是一条规则,如果我们给
{x+=$2}
x+=$2}
那些有/有动作的人。

我想你应该阅读awk手册。点击上面的awk标签,然后点击“了解更多…”来了解更多关于awk的信息。@Glenjackman:是的,答案就在这里。只有当条件为真时,才会发生默认操作。如果x是5,那么$2是-5,那么x+=$2将导致零(假值),并且该行将不会被打印。
Starting Here
John    2
John    -1
John    -10
John    5
John    9
John    -4
John    9
John    2
John    3
16