快速搜索unix目录中文件的文本?

时间:2011-01-31 19:54:49

标签: unix full-text-search

是否有一个很好的解决方案来执行类似于

的搜索
find . -name "*.*" | xargs grep "some text"

但由于离线索引,搜索速度更快。支持通配符或轻型正则表达式会很不错,但即使是原始文本搜索也可能会因离线预处理而运行得非常快。

5 个答案:

答案 0 :(得分:2)

我认为这是一个伟大而快速的选择

grep -rl "string" /path

答案 1 :(得分:1)

这可能对您的目的而言过于苛刻,但Beagle允许您对本地文件执行非常快速的搜索。它通常作为桌面应用程序销售,但实际上它只是一个守护程序,可以使用beagle-query响应来自命令行的请求。

答案 2 :(得分:0)

Recoll为本地文件提供了一个不错的索引机制,但它附带了一个GUI。

答案 3 :(得分:0)

grep -Ri --include =" * .xml" TEXT /目录/

  • 此搜索' TEXT'在特定目录中的所有xml文件中的文本,但它可能没有您期望的那么快

答案 4 :(得分:-3)

的Python

from __future__ import print_function
import glob
for name in glob.glob('*.*'):
    with open(name,'r') as aFile:
        for n, text in enumerate(aFile):
            if 'some text' in text:
                print( name, n, text )

re模块中有一个非常完整的正则表达式库。

您可以创建shelve数据库或其他一些索引结构,而不是打印结果。