-2

下面的 sed 删除 {content-start} 和 {content-end} 之间所有出现的块,但只想删除包含 sting 'labtest' 的块。

sed -ie '/{content-start.*}/,/{content-end}/d' test.txt

测试.txt

{content-start}
abc1
labtest
def1
ghi1
{content-end}
{content-start}
abc2
def2
labtest
ghi2
{content-end}
{content-start}
abc3
def3
ghi3
{content-end}
4

1 回答 1

-1

这可能对您有用(GNU sed):

sed '/{content-start}/{:a;N;/{content-end}/!ba;/labtest/d}' file

收集开始和结束字符串之间的行,然后测试所需字符串的集合并删除如果是肯定的。

于 2018-06-03T07:19:15.403 回答