Ich muss alle Dateien finden, die MYSTRING enthalten und vor denen kein „#“ steht.
Dies hier sollte beispielsweise FALSE zurückgeben, da in derselben Zeile vor MYSTRING ein „#“ vorkommt:
a=1 # otherstring MYSTRING
und dieses sollte TRUE zurückgeben:
# another line above is commented but that's not on the same line
a=1; MYSTRING
Ich habe in ähnlichen Fragen nachgesehen, konnte aber nicht genau die gleiche Situation finden.
Antwort1
Du kannst tun:
grep '^[^#]*MYSTRING' file.txt
^[^#]*MYSTRING
passt zu einer beliebigen Anzahl von Zeichen vom Anfang, die nicht ist#
, bis ,MYSTRING
dh es passt zu Zeilen, die habenMYSTRING
, aber nirgendwo#
davor in der Zeile
Beispiel:
% 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