如何 grep 查找單引號?

如何 grep 查找單引號?

我正在瀏覽一些 VB 原始檔。我使用以下查詢 -

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

然而,有些行帶有註釋,並以單行註釋開頭。 VB 中的單行註解以單引號開頭 - '

不幸的是,我不能簡單地刪除所有包含單引號的行,因為某些行在程式碼行後面有單引號註解。

所以我嘗試了類似的方法來刪除行開頭的單引號

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

然而,這並沒有奏效。這個怎麼做?

答案1

您正在使用grep -n與行號相符的前綴,因此您的第二個模式"^\s*'"將永遠不會相符。相反,您可以使用一個正規表示式:

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

這會搜尋前面沒有任何單引號的模式實例。

相關內容