líneas grep que coinciden con un patrón, y las líneas anteriores y posteriores a la coincidencia hasta un patrón diferente

Start_pattern
abc
d End_pattern
Start_pattern
abc
d
ef
ghij 
klm
no End_pattern
Start_pattern
abc
def
hij End_pattern
Start_pattern
abc
dhi
jklm End_pattern

Salida deseada:

Para imprimir líneas entreStart_pattern inclusoSearch_pattern End_pattern Patrón de inicio y fin inclusive.

Start_pattern
abc
d
ef
ghij 
klm
no End_pattern
Start_pattern
abc
def
hij End_pattern

En el archivo de arriba quiero buscar"ef" e imprimir líneas entre"Strat_pattern" y"End_pattern".

He intentadogrep -B[NUM] and -A[NUM] que no son útiles ya que podría haber un número desconocido de líneas entre el patrón de búsqueda "gef" y "Start_pattern" y "End_pattern".grep, sed , awk Cualquier cosa bienvenida. preferentemente un trazador de líneas.sed -n '/BEGIN/,/END/p' * trabaja para imprimir líneas entreSearch_pattern cual es"def" yEnd_pattern. pero iam no puede imprimir líneas entreStart_pattern y"def"Múltiples archivos presentes con múltiples ocurrencias de search_pattern

Respuestas a la pregunta(4)

Su respuesta a la pregunta