1

如何sed从一个匹配的正则表达式(包括)到另一个匹配的正则表达式(包括)的打印行,但添加条件 - 关闭正则表达式可能根本不存在,在这种情况下,应该打印直到 EOF 的所有内容?

示例 1(假设^START.*^END.*作为分隔正则表达式):

cruft1
cruft2
START print this
print this
print this
END print this too
cruft

示例 2:

cruft1
cruft2
START print this
print this
print this
- file ends here

子问题:只打印第一个这样的出现。

4

1 回答 1

1

匹配从 ^START 到 ^END 的所有行

 sed -n '/^START/,/^END/p' <file>

打印第一次出现

 sed -n '/^START/,/^END/ {p;q;}' <file>
于 2013-03-03T11:12:09.673 回答