如何 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" .

这将搜索前面没有任何单引号的模式实例。

相关内容