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