一重引用符を grep するにはどうすればいいですか?

一重引用符を grep するにはどうすればいいですか?

私はいくつかの VB ソース ファイルを grep しています。次のクエリを使用します -

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

ただし、一部の行はコメント化されており、1行コメントで始まっています。VBの1行コメントは、1つの引用符で始まります - '

残念ながら、一部の行にはコード行の後に一重引用符コメントがあるため、一重引用符を含む行をすべて単純に削除することはできません。

そこで、行頭のシングルクォートを削除するために次のようなことを試しました

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

しかし、これは機能しませんでした。どうすればいいでしょうか?

答え1

行番号と一致するプレフィックスを使用しているgrep -nため、2 番目のパターンは"^\s*'"一致しません。代わりに、1 つの正規表現を使用できます。

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

これは、単一引用符が先頭に付いていないパターンのインスタンスを検索します。

関連情報