Как grep для одиночной цитаты?

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

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

Некоторые строки, однако, прокомментированы и начинаются с одного комментария строки. Однострочный комментарий в VB начинается с одной цитаты –

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

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

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

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

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

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

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