【发布时间】:2014-07-16 19:07:30
【问题描述】:
我想打印从一个匹配到第二个匹配的所有行,不包括第二个匹配。
到目前为止,我所做的一切都做了,而且做得太多了,因为它也打印了第二场比赛。
具体来说,假设我想打印从包含“test”的行开始的所有内容,直到但不包括以数字或左括号“[”开头的第一行。
这有一定的意义,但不是全部:
sed -n '/test/,/^[0-9]\|^\[/p' file
【问题讨论】:
-
grep -o -P 可能会成功,请参阅stackoverflow.com/questions/24512398/…
-
带 sed 版本? GNU sed 允许 OR
|但不允许 posix 版本?