grep '^[^#]*print'
Seria print
precedido apenas por caracteres não #.
Na depuração, eu uso muito 'print' e comento com '#print'. Como posso usar o grep para encontrar a linha sem '#' antes de 'print'?
# print <- not detect
#print <- not detect
abc # print <-- not detect
print <- detect
Solução clássica:
grep -v '^#' <input |grep 'print'
A abordagem mais fácil provavelmente será usar dois grep
s, juntos.
$ grep 'print' <input | grep -v '#[[:space:]]*print'
Com o arquivo input
contendo seus exemplos, isso dá:
print <- detect
Isso funciona para todos os seus exemplos. O que provavelmente é bom o suficiente, mas como manatwork e eu apontamos nos comentários, será muito difícil derrotar todos os casos com grep
.
Eu ainda estou aprendendo, mas o ff também não funciona?
grep -v '#[ ]*print' input_file
Tags grep