Um script para o padrão sed
que usa um loop explícito para excluir as linhas:
/^iface .* inet6/ {
:again
N
s/.*\n//
/^[[:blank:]]/b again
}
O script localiza as linhas inet6
e, em seguida, anexa a linha seguinte a essa linha internamente no espaço padrão (com um caractere de nova linha incorporado entre elas). Em seguida, exclui o espaço de padrão até e incluindo o primeiro caractere de nova linha (isso exclui a linha inet6
original). Ele continua fazendo isso até que o espaço padrão não comece com um caractere em branco (espaço ou tabulação).
Teste:
$ cat file
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
$ sed -f script.sed <file
auto wlx00
allow-hotplug wlx00
iface wlx000 inet dhcp
auto wlx000
Teste em dados artificiais:
$ cat file
something1
something2
iface have a inet6 here
delete me
me too
same here
something3
something4
iface more something inet6
be gone
skip this
something5
$ sed -f script.sed <file
something1
something2
something3
something4
something5
O script como "one-liner":
sed -e '/^iface .* inet6/ {' -e ':a' -e 'N;s/.*\n//;/^[[:blank:]]/ba' -e '}'