我正在尝试使用grep来分析我拥有的一堆C#文件,以匹配特定类型的for循环。具体来说,任何看起来如下的内容都匹配:
for (int i = 0; i < foo.Length; i++)
{
foo[i] = bar[i];
}
在我学会了grep不支持多行之后,我尝试安装pcregrep,但它没有成功。这是我的(当然非常草率)正则表达式:
pcregrep -rlM "for (int i = 0; i < [A-Za-z]*\.Length; i++)\n[ *]\{\n[ *][A-Za-z]*\[i\] = [A-Za-z]*\[i\];\n[ *]\}"
我在大约10分钟前运行了这个命令,它仍在运行(尽管CPU使用率非常低,令人惊讶)。我做错了什么/有更快的方法吗?
答案 0 :(得分:3)
pcregrep
不同, grep
不会推断-r
中的“使用当前目录”,因此它正在等待输入,这使其看起来像是悬挂。明确指定路径:
pcregrep -rlM … .