Ich verwende die folgende grep Abfrage, um das Vorkommen von Funktionen in einer VB-Quelldatei zu finden.Wie grep um ein optionales Wort einzuschließen?
grep -nri "^\s*\(public\|private\|protected\)\s*\(sub\|function\)" formName.frm
Das passt -
Private Sub Form_Unload(Cancel As Integer)
Private Sub lbSelect_Click()
...
jedoch verfehlt es auf Funktionen aus wie -
Private Static Sub SaveCustomer()
wegen des zusätzlichen Wort "Static" drin. Wie wird dieses "optionale" Wort in der grep-Abfrage berücksichtigt?
Ok. Danke für die Antwort. – CodeBlue
Was ohne den umgekehrten Schrägstrich ein Fragezeichen anzeigen würde? – CodeBlue
@CodeBlue eine wörtliche?. Wenn Sie 'grep' auf diese Weise aufrufen, verwendet es BRE (grundlegende reguläre Ausdrücke). In BRE müssen Sie m maskieren eines der Metazeichen für "erweiterte" Ausdrücke. Wie in einer anderen Antwort angemerkt, wenn Sie -E übergeben hätten, hätten Sie nicht entkommen müssen (in der Tat würde die Flucht es dazu führen, dass es mit einem buchstäblichen Zeichen übereinstimmt!). – FatalError