Я пытаюсь удалить линии между двумя шаблонами, включая линии с самими шаблонами, если между ними найден другой шаблон, но я не знаю, как с этим справиться.
Скажем, у меня есть ввод, подобный следующему, и я хочу удалить строки с 6 по 11, потому что шаблон notthis
находится между шаблонами start
и end
:
start
AHBUe3Ar5NoD
3EcuCcD2QCja
7VmlKFbD8Rbi
end
start
OgytsRhZbD8T
notthis
0PlcUh2RLvVW
tsz2S80SyW9p
end
start
dQ5qiZCvBqcK
SufdS40X1Sh2
B1cyNshOj2Z4
end
Я изменил то, что, как я думал, понял, с этого ответа на что-то вроде этого, но это не работает:
/^start$/{$!{N;/^start\n(.*\n)*notthis.*\n(.*\n)*end/d;ty;P;D;:y}}
Это потому, что N
только добавляет строку, следующую за начальным шаблоном ^start$
, к пространству шаблона и игнорирует то, что следует? И как правильно достичь того, что я пытаюсь сделать?