我正在使用以下正则表达式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)
如何做到每个负正则表达式匹配所需的输出?
使用-v反转匹配的选项,选择不匹配的行
grep -v 'match me'
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用-P它将模式解释为Perl正则表达式.
grep -P '^((?!match me).)*$'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
836 次 |
| 最近记录: |