这个问题和这个问题类似一但我想预先排除一个字符串。假设文件:
cVar=
cVar=
1 cVar=
Var=
Var=
我想 grepVar
但不行cVar
。我试过了grep -P '(?!c)Var' file
,但我得到了文件的所有行。当我尝试时grep -P ' (?!c)Var' file
(请注意括号前的空白),我得到了最后一行,这是应该的。
A*
或.
没有帮助。
我在 Ubuntu 16.04 LTS、14.04 LTS 和 10.04 LTS 上进行了测试。结果始终相同。
答案1
在 Perl 兼容正则表达式 (PCRE) 语法中,(?!c)
是负面的样子先,而在这种情况下你想要的是负面的看法在后面
$ grep -P '(?<!c)Var' file
Var=
Var=