com pcregrep :
pcregrep -M '^(A.*\n)?B.*B1'
com awk :
awk '
/^B.*B1/ {if (p && last ~ /^A/) print last; print; p=0; next}
{p=1; last=$0}'
Como manter linhas contendo pattern 1 apenas se a próxima linha contiver pattern 2 e começar com pattern 3 ?
Exemplo: mantenha a linha iniciando com A apenas se a próxima linha começar com B e contiver o padrão B1
Arquivo de entrada
A item1A
B item1B2
A item2A
A item3A
B item3B1
B item3CB1
B item3B2
A item5A
B item5B1
A item6A
Resultado esperado:
A item3A
B item3B1
B item3CB1
A item5A
B item5B1
(No momento, estou tentando com grep -e ^A -e B1 , mas o efeito colateral é que todas as linhas A s são mantidas)
Tags grep