grep - 排除前面的字符串

grep - 排除前面的字符串

这个问题和这个问题类似但我想预先排除一个字符串。假设文件:

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=

前瞻和后瞻零长度断言

相关内容