Мне нужно найти все файлы, содержащие MYSTRING, перед которыми нет символа «#».
например, этот код должен вернуть FALSE, так как в той же строке перед MYSTRING встречается символ "#":
a=1 # otherstring MYSTRING
и этот должен вернуть ИСТИНА:
# another line above is commented but that's not on the same line
a=1; MYSTRING
Я проверил похожие вопросы, но не смог найти точно такую же ситуацию.
решение1
Ты можешь сделать:
grep '^[^#]*MYSTRING' file.txt
^[^#]*MYSTRING
соответствует любому количеству символов от начала, которое не является#
, доMYSTRING
т.е. соответствует строкам, которые содержатMYSTRING
, но не находятся#
в любом месте строки до этого
Пример:
% 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