【问题标题】:awk to not print a line after pattern was matchedawk 在模式匹配后不打印一行
【发布时间】:2020-01-29 18:34:29
【问题描述】:

在我的 awk 脚本中,我有模式行,我只想执行一些代码,而不是打印行。

#!/usr/bin/awk
BEGIN {stuff}
/bla/ {x=7}
END {stuff with x}

当我的输入文件中包含“bla”时,它会打印该行。我不想要那个。我希望匹配只触发 x 的设置。 awk 脚本是可执行的,我使用 cmd 行中的文件参数运行它。

../scripts/process.awk infile

上面的内容与 infile 中所有不需要的行相呼应。

【问题讨论】:

  • 乍一看,在我看来,它并没有打印出包含 bla 的行,因为您没有在其中打印。您能否请一些代码 sn-p 然后让我们知道?它会让我们更好地理解代码。
  • 您确定在/bla/{x=7} 之间没有回车吗?您发布的代码不会按照您所说的那样运行。

标签: awk


【解决方案1】:

在错误行的 BEGIN 部​​分中有一个关闭的“}”。解决后问题就消失了。

【讨论】:

  • 这无法解释您描述的问题,但无论如何您现在应该删除您的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-28
  • 2020-06-05
相关资源
最近更新 更多