我需要编辑如下文件:
auto wlx00
allow-hotplug wlx00
iface wlx000 inet dhcp
iface wlx000 inet6 auto
post-up sysctl -w net.ipv6.conf.wlx000.accept_ra=2
auto wlx000
目标是删除以'iface ... inet6'开头的行,并删除以空格开头的下几行(可以是一个或多个):
iface wlx000 inet6 auto
post-up sysctl -w net.ipv6.conf.wlx000.accept_ra=2
并保持其余状态不变,以得到以下结果:
auto wlx00
allow-hotplug wlx00
iface wlx000 inet dhcp
auto wlx000
我尝试使用sed,如下所示:
sed -i.old -r -e "/iface\s*\w*\s*inet6.*/,\${d;/^\s.*/d;}" /etc/configfile
但它会删除从正确位置开始到擦除为止的所有内容。我只想删除选择iface文本后以空格开头的线条。
1
@fcm,请告诉我们以下解决方案是否正确。如果没有的话,我们可以为您调整
@TNT不是同一个问题。这不是要删除单行,而是删除一行以及后面带有空格的几行。
—
fcm
从理论上讲是重复的,但实际上却不是-我认为最好在这里提供一个单独的答案,以说明如何从给定的模式到具有前导空白的后续行进行匹配。
—
杰夫·谢勒
@rudic提供了一个出色且精心设计的答案,这远非简单的搜索和删除操作,建议的dup上就没有任何答案。
—
fcm