Answers:
有诸如recoll,swish-e和sphinx之类的工具,但您必须检查它们是否可以支持所需的搜索条件。
雷科尔
Recoll是用于Unix / Linux的个人全文搜索工具。
Swish-e
Swish-e是一个快速,灵活,免费的开源系统,用于索引网页或其他文件的集合。
狮身人面像
使用Sphinx,您可以快速轻松地批量索引和搜索存储在SQL数据库,NoSQL存储中的数据,或仅搜索文件
令我惊讶的是,grep如此之慢,可以减少正在搜索的文件数量吗?例如,当我只需要在源文件中搜索一个可执行文件时(一个项目中有许多可执行文件),我从列出该程序源文件的命令中为grep提供名称:
grep expression `sources myprogram`
sources
是特定于我的开发环境的程序,但您可能具有(或能够构建)等效的程序。
我假设您尝试了一些显而易见的技术,例如
find /foo/myproject -name "*.c" -exec fgrep -l searchtext
我读过一条建议,即使用-P
current选项grep
可以显着加快搜索速度。
不,我不这么认为。但是,可能有一个简单的解决方案:尝试ack。我认为,如果有机会,您会发现它比grep快得多,它需要较短的搜索字符串才能获得更好的搜索结果,并且具有许多理想的功能,同时使用的命令开关几乎相同。使速度更快(尽管未编制索引)的一件事是,它忽略了许多您不想搜索的内容。它是用Perl编写的,并使用Perl的正则表达式(因此也具有Mac和Windows端口)。