Para excluir% de volta para trás, Start
e End
linhas, isso deve ser feito no GNU sed:
$ sed -e '/Start/ {N; /^\(.*\):Start\n:End$/d }' < input
se virmos Start
, carregue a próxima linha com N
e, em seguida, veja se o conteúdo do buffer é apenas Somename:Start\nSomename:End
com Somename
same nas duas linhas ( \n
é uma nova linha). Em caso afirmativo, exclua-o. Aqui, é uma referência ao primeiro grupo dentro de
\(..\)
e corresponde à mesma sequência que foi encontrada lá. .*
significa apenas qualquer número ( *
) de qualquer caractere ( .
).
Usar sed -e '/Start/,/End/d'
de fato excluiria todas as linhas, já que o intervalo corresponde a todas as linhas entre os padrões inicial e final. Tudo na entrada está entre Start
e End
, então tudo é excluído.