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"}
但没有向我们展示预期的输出,这只是一个猜测。
我需要使用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"}
但没有向我们展示预期的输出,这只是一个猜测。