我正在浏览一些 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" .
这将搜索前面没有任何单引号的模式实例。