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

时间:2015-04-03 22:03:19

标签: awk match

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

示例:

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

2 个答案:

答案 0 :(得分:3)

以下内容可能有所帮助:

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

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

答案 1 :(得分:0)

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

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

但没有向我们展示那只是猜测的预期输出。