【问题标题】:awk printing with and without {}?带和不带 {} 的 awk 打印?
【发布时间】:2021-08-05 12:30:13
【问题描述】:

我有样本数据

Person  Owe
John    1
John    2
John    -1
John    -10
John    5
John    9
John    -4
John    9
John    2
John    3

我正在使用脚本文件来解析它,命令是 awk -f script data ,脚本内容:

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

输出:

Starting Here
16

但是当我从 {x+=$2} 中删除 {} 输出:

Starting Here
John    2
John    -1
John    -10
John    5
John    9
John    -4
John    9
John    2
John    3
16

问)如果我在变量添加周围没有{},为什么会打印?

【问题讨论】:

  • 我认为你应该阅读 awk 手册。
  • 点击上面的 awk 标签,然后点击“Learn more...”了解更多关于 awk 的信息。
  • @glennjackman:是的,答案就在那里。

标签: awk


【解决方案1】:

回答自己的问题:

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

【讨论】:

  • 默认操作仅在条件为 true 时发生。如果 x 为 5,然后 $2 为 -5,则 x+=$2 的结果为零(错误值),并且不会打印该行。
猜你喜欢
  • 2019-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 2015-06-19
  • 1970-01-01
  • 2021-08-05
  • 1970-01-01
相关资源
最近更新 更多