【发布时间】:2011-01-31 19:54:48
【问题描述】:
有没有很好的解决方案来执行类似于
的搜索find . -name "*.*" | xargs grep "some text"
但由于离线索引,搜索速度更快。对通配符或轻型正则表达式的支持会很好,但即使是由于离线预处理而可以运行得非常快的原始文本搜索也会很棒。
【问题讨论】:
标签: unix full-text-search
有没有很好的解决方案来执行类似于
的搜索find . -name "*.*" | xargs grep "some text"
但由于离线索引,搜索速度更快。对通配符或轻型正则表达式的支持会很好,但即使是由于离线预处理而可以运行得非常快的原始文本搜索也会很棒。
【问题讨论】:
标签: unix full-text-search
我认为这是一个很棒且快速的选择
grep -rl "string" /path
【讨论】:
这对于您的目的来说可能是多余的,但Beagle 允许您对本地文件执行非常快速的搜索。它通常作为桌面应用程序销售,但实际上它只是一个可以使用beagle-query 响应来自命令行的请求的守护进程。
【讨论】:
Recoll 有一个不错的本地文件索引机制,但它带有一个 GUI。
【讨论】:
grep -Ri --include="*.xml" TEXT /目录/
【讨论】:
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 数据库或其他一些索引结构,而不是打印结果。
【讨论】:
grep 快(事实上,它可能要慢得多)。 OP 正在寻找预先计算索引的东西,这样查找就不必在搜索时实际读取数据。