Sed para eliminar un rango de líneas de una línea de coincidencia específica HASTA una línea de coincidencia específica (sin incluir la última línea)

Leí en el foro en busca de pistas sobre cómo resolver mi problema, pero ninguno de los hilos relacionados son utilizables para mí, con un conocimiento limitado de programación, para aplicar a mi problema específico.

Mi problema es el siguiente: necesito deshacerme de las líneas de basura que están agrupadas en todo mi archivo, pero que se encuentran entre grupos de líneas utilizables. Busqué en el manual de sed y en otras fuentes informativas sobre la eliminación de rangos que coinciden con los patrones, pero solo mencionan eliminar hasta que coincidan con el patrón, no TILL.

Ahora me gustaría especificar un rango para el cual sed borra las líneas que comienzan desde la primera línea que coincide con la línea del patrón hasta la línea que coincide con el otro patrón. Además, sed necesita reconocer los patrones que existen al final de las líneas.

Por ejemplo

line 1
blah blah 1
blah blah 2
blah blah 3
blah blah 4
line 2
line 3

Result necesita ser:

line 1
blah blah 1
line 2
line 3

Tenga en cuenta las múltiples líneas entre la línea y la línea 2. Si bien bla, bla 1 debe permanecer, las otras 3 deben eliminarse.

¡Gracias

Respuestas a la pregunta(6)

Su respuesta a la pregunta