Eu sugiro usar perl
:
perl -p0e 's/(.*\n)(.*\n)(.*Fail\n)/####/g' file
Veja como funciona:
-
-p
: programa de impressão no loop sobre todas as linhas de entrada -
-0
: assume null como separador de registro -
-e
: executar programa a partir da linha de comando -
s/x/y/g
: substitua y por x em qualquer lugar no arquivo -
()
: agrupar expressões regulares -
.*
: qualquer caractere, exceto nova linha, repetido zero ou mais vezes -
\n
: newline -
,
,
: padrão de acesso do enésimo grupo
()
Saída:
Name
Number
Reason = Pass
Reasult
Name
Number
Reason = Pass
Reasult
#Name
#Number
#Reason = Fail
#Reasult
Name
Number
Reason = Pass
Reasult
#Name
#Number
#Reason = Fail
#Reasult
Name
Number
Reason = Pass
Reasult