awk:如果找到模式,则计算直到第一个空行的行

Ano*_*ist 1 regex awk

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

...
PATTERN 
BBBB
CCCC

...
Run Code Online (Sandbox Code Playgroud)

它应该打印:2

我尝试过的:

awk '/PATTERN/{print $0}' file | wc-l
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 5

你可以用这个awk:

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

2
Run Code Online (Sandbox Code Playgroud)
  • 当我们找到一个模式时,将变量设置n为当前行号即NR
  • 当我们找到下一个空行时,我们打印出差异