只需在不同的行上 grep 多个模式即可

只需在不同的行上 grep 多个模式即可

我有文件.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

答案1

您的grep -E命令执行您在主题中编写的操作,但我想您真正想要的是A2如果以下行是 则显示带有“状态”的行RP FAULT。正确的?

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

显示比赛后的行数,显示-A n比赛前的行数。n-B n

答案2

选项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

相关内容