如何用sed删除多行模式?

时间:2016-09-14 09:35:15

标签: regex sed

我尝试使用一个命令行删除多行isc dhcpd配置。

我试图用sed

来做

My regex looks good

但我无法在sed命令中使用

sed '/subnet 10.5.154.*{((.|\n)*?)}((.|\n)*?)}/d' dhcpd.conf

我失踪了什么?

1 个答案:

答案 0 :(得分:1)

sed逐行工作并默认使用BRE(基本正则表达式)语法,但你可以做的是定义一系列具有两种模式的行(使用块以空行结束的事实,或者使用自结束以来的缩进}开始行并使用删除命令。

如果块后面有空行:

sed '/^subnet 10\.5\.154\.0/,/^$/d' file

或使用行尾的结束括号:

sed '/^subnet 10\.5\.154\.0/,/^}/d' file