
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 -n
Prä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.