apenas grep multiple pattern na linha diferente

0

Eu tenho o arquivo.txt

A2
RP FAULT

A2
RP FAULT

A2
CELL

A2
CELL

como eu posso apenas grep 2 palavras: A2 & RP FAULT , o resultado deve ser:

A2
RP FAULT
A2
RP FAULT

o que eu tento:

cat file.txt | grep -E "A2|RP FAULT"

mas o resultado é assim

A2
RP FAULT
A2
RP FAULT
A2
A2
    
por Anggoro Setiawan 31.07.2018 / 09:13

2 respostas

0

Seu comando grep -E faz o que você escreveu no assunto, mas acho que o que você realmente quer é mostrar as linhas A2 com o "status" se a linha a seguir for RP FAULT . Certo?

cat file.txt | grep -A 1 "A2" | grep -B 1 'RP FAULT'

O -A n mostra n linhas após a correspondência, o -B n mostra linhas antes.

    
por 31.07.2018 / 09:34
0

Opção 1: você pode tentar pcregrep em vez do normal grep

pcregrep  -M "A2\nRP FAULT" file
  • -M usado para combinar várias linhas, para que possamos procurar novas linhas como \n .

Opção 2: com% regulargrep

 grep -zoP "A2\nRP FAULT" file

Saída:

A2
RP FAULT
A2
RP FAULT
    
por 31.07.2018 / 09:21