Na sintaxe de expressão regular compatível com Perl (PCRE), (?!c)
é uma aparência negativa à frente , enquanto o que você quer neste caso é uma aparência negativa por trás
$ grep -P '(?<!c)Var' file
Var=
Var=
Esta pergunta é similar àquela one mas quero excluir uma string antecipadamente. Suponha que o arquivo:
cVar=
cVar=
1 cVar=
Var=
Var=
Eu quero grep Var
, mas não cVar
. Eu tentei grep -P '(?!c)Var' file
, mas eu recebo todas as linhas do arquivo. Quando tento grep -P ' (?!c)Var' file
(anote o espaço em branco antes do colchete), recebo a última linha como deveria.
Um *
ou .
não ajuda.
Eu testei no Ubuntu 16.04 LTS, 14.04 LTS e 10.04 LTS. Sempre o mesmo resultado.
Na sintaxe de expressão regular compatível com Perl (PCRE), (?!c)
é uma aparência negativa à frente , enquanto o que você quer neste caso é uma aparência negativa por trás
$ grep -P '(?<!c)Var' file
Var=
Var=