просто наберите несколько шаблонов на разных строках

У меня есть file.txt

A2 RP FAULT A2 RP FAULT A2 CELL A2 CELL 

как я могу просто grep 2 слова: A2 & RP FAULT , результат должен быть:

 A2 RP FAULT A2 RP FAULT 

что я пытаюсь:

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

но результат как этот

 A2 RP FAULT A2 RP FAULT A2 A2 

    Ваша команда grep -E делает то, что вы написали в теме, но я думаю, что вы действительно хотите, чтобы показать строки A2 с «status», если следующая строка RP FAULT . Правильно?

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

    -A n показывает n строк после совпадения, -B n показывает строки до.

    Вариант 1: вы можете попробовать pcregrep вместо обычного grep

     pcregrep -M "A2\nRP FAULT" file 
    • -M используется для совпадения по нескольким строкам, поэтому мы можем искать новые строки как \n .

    Вариант 2: с обычным grep

      grep -zoP "A2\nRP FAULT" file 

    Выход:

     A2 RP FAULT A2 RP FAULT