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=