如何使用带有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,我找不到使用正则表达式的答案
你不能在字符类中使用"整个"单词.正则表达式匹配当前任何字符除外:h,e,l,o.您可以将grep与以下选项一起使用并实现Negative Lookahead ...
grep -P '^(?!.*hello).*$' file
Run Code Online (Sandbox Code Playgroud)
-Poption将模式解释为Perl正则表达式.