一重引用符を見つける方法は?

一重引用符を見つける方法は?

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

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

ただし、一部の行はコメントアウトされており、1行のコメントで始まります。 VBの1行コメントは一重引用符( ')で始まります。

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

それで、行の先頭の一重引用符を削除するためにこのようなことを試しました。

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

しかし、これはうまくいきませんでした。どうすればいいですか?

答え1

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

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

これにより、先頭に一重引用符がないパターンインスタンスが検索されます。

関連情報