Wie sucht man nach einem einzelnen Anführungszeichen?

Wie sucht man nach einem einzelnen Anführungszeichen?

Ich durchsuche gerade einige VB-Quelldateien. Ich verwende die folgende Abfrage -

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

Einige Zeilen sind jedoch kommentiert und beginnen mit einem einzeiligen Kommentar. Ein einzeiliger Kommentar in VB beginnt mit einem einfachen Anführungszeichen - '

Leider kann ich nicht einfach alle Zeilen entfernen, die ein einfaches Anführungszeichen enthalten, da bei manchen Zeilen nach der Codezeile ein Kommentar in Form eines einfachen Anführungszeichens steht.

Also habe ich so etwas versucht, um das einfache Anführungszeichen am Zeilenanfang zu entfernen

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

Dies hat jedoch nicht funktioniert. Wie geht das?

Antwort1

Sie verwenden grep -nPräfixe, die mit Zeilennummern übereinstimmen, sodass Ihr zweites Muster "^\s*'"niemals übereinstimmt. Stattdessen können Sie einen einzigen regulären Ausdruck verwenden:

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

Dadurch wird nach Instanzen Ihres Musters gesucht, denen keine einfachen Anführungszeichen vorangestellt sind.

verwandte Informationen