Necesito encontrar todos los archivos que contengan MYSTRING y que no tengan un "#" antes.
por ejemplo, este debería devolver FALSO ya que aparece "#" antes de MYSTRING en la misma línea:
a=1 # otherstring MYSTRING
y este debería devolver VERDADERO:
# another line above is commented but that's not on the same line
a=1; MYSTRING
Revisé preguntas similares, pero no pude encontrar exactamente la misma situación.
Respuesta1
Tu puedes hacer:
grep '^[^#]*MYSTRING' file.txt
^[^#]*MYSTRING
coincide con cualquier número de caracteres desde el inicio que no es#
, hasta,MYSTRING
es decir, coincide con líneas que tienenMYSTRING
, pero no#
en ningún lugar antes de eso en la línea
Ejemplo:
% 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