linhas grep correspondentes a um padrão e as linhas antes e depois da correspondência até um padrão 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

Saída desejada:

Para imprimir linhas entreStart_pattern IncluindoSearch_pattern End_pattern Padrão inicial e final, inclusive.

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

No arquivo acima, eu quero procurar"ef" e imprimir linhas entre"Strat_pattern" e"End_pattern".

tenteigrep -B[NUM] and -A[NUM] que não são úteis, pois pode haver um número desconhecido de linhas entre o padrão de pesquisa "gef" e "Start_pattern" e "End_pattern".grep, sed , awk qualquer coisa bem-vinda. preferencialmente um forro.sed -n '/BEGIN/,/END/p' * trabalha para imprimir linhas entreSearch_pattern qual é"def" eEnd_pattern. mas não sou capaz de imprimir linhas entreStart_pattern e"def"Vários arquivos presentes com várias ocorrências de search_pattern

questionAnswers(4)

yourAnswerToTheQuestion