
私はいくつかの 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" .
これは、単一引用符が先頭に付いていないパターンのインスタンスを検索します。