【发布时间】:2015-04-04 21:39:05
【问题描述】:
我需要使用 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 通过基于记录分隔符(默认为 \n)分成几行来读取文件,因此您将无法像这样一次性测试多行。您需要对连续的空行进行某种滚动计数。 (编辑:就像刚才说的答案..)
-
鉴于您正在编写一个 awk 脚本,为什么要告诉我们 bash 版本而不是 awk 版本? awk 版本很重要,bash 版本对这个问题很有用,因为它知道你开什么样的车。无论如何 - 执行此操作的正确方法将取决于您的预期输出,所以请发布它。