如何使用与grep -E匹配的负正则表达式?

gen*_*eek 2 regex grep

我正在使用以下正则表达式grep -E来通过|管道匹配特定字符串字符串.

$ git log <more switches here> | grep -E "match me"
Run Code Online (Sandbox Code Playgroud)

输出:

match me once
match me twice
Run Code Online (Sandbox Code Playgroud)

我真正想要的是一个负匹配(返回所有不包含指定字符串的输出行,如下所示,但grep不喜欢它:

$ git log <more switches here> | grep -E "^match me"
Run Code Online (Sandbox Code Playgroud)

期望的输出:

whatever 1
whatever 2
Run Code Online (Sandbox Code Playgroud)

这是从命令行返回的完整输出:

match me once
match me twice
whatever 1
whatever 2
Run Code Online (Sandbox Code Playgroud)

如何做到每个负正则表达式匹配所需的输出?

hwn*_*wnd 7

使用-v反转匹配的选项,选择不匹配的

grep -v 'match me'
Run Code Online (Sandbox Code Playgroud)

另一种选择是使用-P它将模式解释为Perl正则表达式.

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