grep-使用正则表达式打印所有不包含模式的行(不带-v)

Bol*_*boa 2 regex grep

如何使用带有grep的正则表达式打印所有不包含模式的行.我无法使用,-v因为我想在更复杂的一个中实现正则表达式,因为这-v是不切实际的.

但每当我尝试打印不包含模式的行时,我都无法获得预期的输出.

例如,如果我有这个文件:

blah blah blah
hello world
hello people
something
Run Code Online (Sandbox Code Playgroud)

我想要打印所有不包含的行hello,输出应该是:

blah blah blah
something
Run Code Online (Sandbox Code Playgroud)

我试过这样的东西,但它不起作用:

egrep '[^hello]' file
Run Code Online (Sandbox Code Playgroud)

关于SO使用的所有答案-v,我找不到使用正则表达式的答案

hwn*_*wnd 5

你不能在字符类中使用"整个"单词.正则表达式匹配当前任何字符除外:h,e,l,o.您可以将grep与以下选项一起使用并实现Negative Lookahead ...

grep -P '^(?!.*hello).*$' file
Run Code Online (Sandbox Code Playgroud)

Ideone演示