【问题标题】:awk: if pattern is found, count lines until the first empty lineawk:如果找到模式,则计算行数,直到第一个空行
【发布时间】:2017-03-21 05:39:30
【问题描述】:

在一个大文档中,一旦找到一个模式,计算所有行,从模式的下一行开始,直到第一个空行:

...
PATTERN 
BBBB
CCCC

...

它应该打印:2

我尝试过的:

awk '/PATTERN/{print $0}' file | wc-l

【问题讨论】:

  • 什么是模式,你尝试了什么?
  • @anubhava 谢谢你,澄清后

标签: regex awk


【解决方案1】:

你可以使用这个awk:

awk -v p='PATTERN' '$0 ~ p{n=NR} n && !NF{print NR-n-1; exit}' file

2
  • 当我们找到一个模式时,将变量n设置为当前行号,即NR
  • 当我们找到下一个空行时,我们会打印差异

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多