通过复杂的目录(代码,文件,php脚本等)诊断缓慢的grep或ack搜索,以便更快地重复使用

时间:2011-04-05 18:10:47

标签: search grep organization ack

我正在使用ack(有时分发为ack-grep)来搜索复杂的代码目录,图像,谁知道还有什么,而且反应非常慢。我怎样才能诊断它正在搜索的是什么使它变慢,以便我可以让它忽略它们?

我刚刚意识到我的ack-grep速度慢的原因可能会因为同样的原因而使grep变慢,所以我改变了标题的措辞以引用两者。

当前的ack-grep命令别名:

function view ()
{
echo "ack-grep -i $@ // ignoring third-party directories"
ack-grep -i --ignore-dir=third-party --ignore-dir="unclean-files" --ignore-dir=FCKeditor --ignore-dir=smarty --ignore-dir=codepress --ignore-dir=yui "$@"
}

所以我通过该别名对某些字符串进行不区分大小写的搜索,例如view "Oops! Required fields",忽略某些目录。

我想我真正可以使用的是greb或ack-grep的“详细”模式,以便我可以直观地看到它所挂起的子目录,因为它们搜索速度很慢。

2 个答案:

答案 0 :(得分:4)

使用-L开关结束输出所有匹配的文件,以便快速直观地诊断问题。仅使用以下命令结构:

ack-grep -L "Oops! Required fields were not all completed."

答案 1 :(得分:1)

你正在寻找什么?如果它只是特定类型的来源(假设您正在寻找变量),请使用适当的开关(对于perl,使用--perl等)。如果你有大量的资源,无论你做什么,都需要一段时间。

Ack-grep就像你告诉它一样聪明。另外,你的正则表达有多复杂?正则表达式有开销,如果您只是在搜索某个名称,请不要使用正则表达式。你不应该用锤子松开螺栓。