正则表达式-匹配的字符串不包含其他字符串

时间:2019-10-18 09:41:42

标签: regex grep

我需要为特定字符串grep我的日志,但要排除包含单词“ centrifugo”的字符串。

例如,如果我为xxx做grep,我会得到:

123 centrifugo 551 xxx
451 abcd xxx 334
yyyy xxx 231

预期输出:

451 abcd xxx 334
yyyy xxx 231

正则表达式是什么?

1 个答案:

答案 0 :(得分:2)

一个简单的正则表达式要比匹配包含xxx但不包含centrifugo的所有行的单个正则表达式更简单,那就是首先将grep设为xxx,然后将输出传递到另一个{ {1}}个过滤包含grep的行。可以这样写:

centrifugo

对于grep -v,也请查看Negative matching using grep (match lines that do not contain foo)

现在,如果您真的想使用正则表达式,请查看Regular expression for a string containing one word but not another。申请可以使用正则表达式,例如:

grep xxx | grep -v centrifugo

您可以here试试。