Encontre um padrão específico e imprima o bloco de texto completo usando o awk ou sed

Como encontrar um número específico em um bloco de texto e imprimir ocompleto bloco de texto começando com a palavra-chave"BEGIN" e terminando com"END"? Basicamente é assim que meu arquivo se parece:

BEGIN
A: abc
B: 12345
C: def
END

BEGIN
A: xyz
B: 56789
C: abc
END

BEGIN
A: ghi
B: 56712
C: pqr
END

[...]

Se eu estava procurando'^B: 567', Gostaria de obter esta saída:

BEGIN
A: xyz
B: 56789
C: abc
END

BEGIN
A: ghi
B: 56712
C: pqr
END

Eu poderia usar grep aqui (grep -E -B2 -A2 "^B: 567" file), mas gostaria de obter uma solução mais geral. eu achoawk oused pode ser capaz de fazer isso?

Obrigado! :)

questionAnswers(6)

yourAnswerToTheQuestion