我有一个具有以下模式的文件。
Foo $var1
.........
.........
Foo $var2
..........
..........
..........
Yes
我只想匹配以“Foo”开头并具有“是”的“部分”。(您会注意到每个部分的末尾都有一个空的换行符)
预期的输出应该是。
Foo $var2
..........
..........
..........
Yes
我试过了
pcregrep -M "^Foo(.|\n)*^Yes"
但不幸的是,这从前一部分开始匹配,并将倒数第二部分与具有“是”作为返回匹配的部分混为一谈,所以我没有得到一个以“Foo”开头并具有“是”的部分,但是与以前一样多的以“Foo”开头的部分
我的困境是,如果在本节末尾我看不到“是”,但我匹配了“Foo”,如何丢弃上一个匹配项。
我尝试使用lookbehind 函数,但它不能用于可变长度。