arquivos grep que contêm um texto não comentado

2

Eu 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

Eu verifiquei as perguntas semelhantes, mas não consegui encontrar exatamente a mesma situação.

    
por RockScience 27.09.2016 / 05:25

1 resposta

4

Você pode fazer:

grep '^[^#]*MYSTRING' file.txt
  • ^[^#]*MYSTRING corresponde a qualquer número de caracteres do início que não seja # , até MYSTRING , ou seja, corresponde às linhas que têm MYSTRING , mas não # em qualquer 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
    
por 27.09.2016 / 05:33

Tags