2011-01-31 61 views
2

是否有执行类似的搜索很好地解决了快速搜索unix目录中文件的文本?

find . -name "*.*" | xargs grep "some text" 

但更快的搜索,由于离线索引。支持通配符或正则表达式会很好,但即使是由于离线预处理而运行得非常快的原始文本搜索也会非常棒。

+0

相关:http://stackoverflow.com/questions/5562297/fast-search-in-compressed-text-files – 2011-07-22 21:18:07

回答

1

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

-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数据库或其他索引结构。

+0

此次荣获”没有任何fa而不是`grep`(实际上,它可能会慢得多)。 OP正在寻找预先计算索引的内容,以便查找不必在搜索时实际读取数据。 – 2011-01-31 20:09:09

0

Recoll本地文件有一个体面的索引机制,但它带有一个GUI。

1

我认为这是一个巨大的,快速的选择

grep -rl "string" /path 
0

的grep -Ri --include = “*。xml” 的文本/目录/

  • 这个搜索 'TEXT' 中的所有文本在特定目录中的XML文件,但它可能不会像快,你想到