使用grep隐藏包含该单词的行的输出,除非该单词也存在

使用grep隐藏包含该单词的行的输出,除非该单词也存在,grep,Grep,我正在将脚本的输出传输到。我想隐藏包含某个单词的所有行(例如AAA),除非该行还包含其他单词(BBB) 例如,如果我的输出如下所示: AAA data1 AAA data2 AAA data3 BBB CCC data4 我想做一些像 <run_cmd> | grep ??? 有什么想法吗?如果有比使用更简单的解决方案,我也可以使用它 提前感谢使用awk而不是grep更简单 run_cmd | awk '!/AAA/ || /BBB/' 使用awk比使用grep更简单

我正在将脚本的输出传输到。我想隐藏包含某个单词的所有行(例如
AAA
),除非该行还包含其他单词(
BBB

例如,如果我的输出如下所示:

AAA  data1
AAA  data2
AAA  data3 BBB
CCC  data4
我想做一些像

<run_cmd> | grep ???
有什么想法吗?如果有比使用更简单的解决方案,我也可以使用它


提前感谢

使用
awk
而不是
grep
更简单

run_cmd | awk '!/AAA/ || /BBB/'

使用
awk
比使用
grep
更简单

run_cmd | awk '!/AAA/ || /BBB/'

那你自己会怎么做呢?对不起,我应该把这个放在我最初的问题里。基本上,我不知道如何处理这个问题。我知道我可以使用'grep-v'来防止它输出一行。但是如果我这样做,我就不能把它传给另一个grep,看看它是否包含在另一个单词中。如果我只是为这个词做一个“grep”的话也是一样的。我知道grep可以做regexp,但我不知道如何做AAA或!在regexp.BBB中,您自己可能会尝试什么?对不起,我应该在我最初的问题中提到这一点。基本上,我不知道如何处理这个问题。我知道我可以使用'grep-v'来防止它输出一行。但是如果我这样做,我就不能把它传给另一个grep,看看它是否包含在另一个单词中。如果我只是为这个词做一个“grep”的话也是一样的。我知道grep可以做regexp,但我不知道如何做AAA或!在regexp.arrgh中BBB'比我快一分钟,所以不能赢;-)+1谢谢。在我的情况下,我必须执行“run|cmd | awk'\!/AAA/| | |/BBB/”(逃脱!),否则我会得到一个错误,说“/AAA/:Event not found”。啊,比我快一分钟,所以不能赢;-)+1谢谢。在我的例子中,我必须执行“run|cmd | awk'\!/AAA/| |/BBB/”(逃逸!),否则我会得到一个错误,说“/AAA/:Event not found”。