Preciso encontrar todos os arquivos que contenham MYSTRING que não tenham um "#" antes disso.
por exemplo, este deve retornar FALSE pois há uma ocorrência de "#" antes de MYSTRING na mesma linha:
a=1 # otherstring MYSTRING
e este deve retornar TRUE:
# another line above is commented but that's not on the same line
a=1; MYSTRING
Verifiquei perguntas semelhantes, mas não consegui encontrar exatamente a mesma situação.
Responder1
Você pode fazer:
grep '^[^#]*MYSTRING' file.txt
^[^#]*MYSTRING
corresponde a qualquer número de caracteres desde o início que não é#
, atéMYSTRING
ou seja, corresponde a linhas que possuemMYSTRING
, mas não#
em nenhum lugar antes disso na linha
Exemplo:
% cat file.txt
# another line above is commented but that's not on the same line
a=1; MYSTRING
a=1 # otherstring MYSTRING
% grep '^[^#]*MYSTRING' file.txt
a=1; MYSTRING