Как выполнить grep для поиска одинарной кавычки?

Как выполнить grep для поиска одинарной кавычки?

Я просматриваю некоторые исходные файлы VB. Я использую следующий запрос -

     grep -nr "GlobalCommArea\s*=\s*.*\.Transaction" . 

Однако некоторые строки прокомментированы и начинаются с однострочного комментария. Однострочный комментарий в VB начинается с одинарной кавычки - '

К сожалению, я не могу просто удалить все строки, содержащие одинарные кавычки, поскольку в некоторых строках после строки кода есть комментарий с одинарными кавычками.

Поэтому я попробовал сделать что-то вроде этого, чтобы удалить одинарную кавычку в начале строки.

     grep -nr "GlobalCommArea\s*=\s*.*\.Transaction" . | grep -v "^\s*'"

Однако это не сработало. Как это сделать?

решение1

Вы используете grep -nwhich prefixes matches с номерами строк, поэтому ваш второй шаблон "^\s*'"никогда не совпадет. Вместо этого вы можете использовать одно единственное регулярное выражение:

grep -nr "^[^']*GlobalCommArea\s*=\s*.*\.Transaction" .

Будет выполнен поиск вхождений вашего шаблона, которым не предшествуют одинарные кавычки.

Связанный контент