
Я просматриваю некоторые исходные файлы VB. Я использую следующий запрос -
grep -nr "GlobalCommArea\s*=\s*.*\.Transaction" .
Однако некоторые строки прокомментированы и начинаются с однострочного комментария. Однострочный комментарий в VB начинается с одинарной кавычки - '
К сожалению, я не могу просто удалить все строки, содержащие одинарные кавычки, поскольку в некоторых строках после строки кода есть комментарий с одинарными кавычками.
Поэтому я попробовал сделать что-то вроде этого, чтобы удалить одинарную кавычку в начале строки.
grep -nr "GlobalCommArea\s*=\s*.*\.Transaction" . | grep -v "^\s*'"
Однако это не сработало. Как это сделать?
решение1
Вы используете grep -n
which prefixes matches с номерами строк, поэтому ваш второй шаблон "^\s*'"
никогда не совпадет. Вместо этого вы можете использовать одно единственное регулярное выражение:
grep -nr "^[^']*GlobalCommArea\s*=\s*.*\.Transaction" .
Будет выполнен поиск вхождений вашего шаблона, которым не предшествуют одинарные кавычки.