awk 3 个连续的空行作为匹配模式

awk 3 consecutive empty lines as the match pattern

我需要使用3个连续的空行作为匹配模式。以下示例在 "rain" 和 "sun".

之间有 3 个空行

例子:

cat
flower


rabbit
grass
rain



sun

以下代码无效:

/\n\n\n/ {print "3 consecutive empty lines found"}

/^$\n^$\n^$\n/ {print "3 consecutive empty lines found"}

/^$^$^$/ {print "3 consecutive empty lines found"}

/'^$'\n'^$'\n'^$'\n/ {print "3 consecutive empty lines found"}

我的bash版本是3.2

以下内容可能有所帮助:

awk '/^$/{if(++i>2){print "3 consecutive empty lines found";exit}}/./{i=0}'

/^$/我们计算连续空行的数量。如果我们找到 /./ 的非空行,我们将计数器设置为零。如果计数器达到 3,我们打印消息并退出。

您可能只需要(使用 GNU awk 进行多字符 RS):

BEGIN{RS="^$"} /(^|\n)\n\n\n/ {print "3 consecutive empty lines found"}

但没有向我们展示预期的输出,这只是一个猜测。