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