带或不带{}的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