我想在几百个日志文件中有效地搜索约 200 个文件名。
grep
我可以使用's指令轻松完成此操作-f
并将针头放入文件中。
但是,有几个问题:
- 我有兴趣有效地做到这一点,如如何有效地使用 grep?
- 我想分别知道所有日志文件中每个搜索词(即文件名)的所有匹配项。
grep -f
将匹配,因为它在每个文件中找到针。 - 我想知道文件名何时不匹配。
2.7 i7 MBP 带 16GB 内存
使用grep -ron -f needle *
给了我:
access_log-2013-01-01:88298:google
access_log-2013-01-01:88304:google
access_log-2013-01-01:88320:test
access_log-2013-01-01:88336:google
access_log-2013-01-02:396244:test
access_log-2013-01-02:396256:google
access_log-2013-01-02:396262:google
其中needle
包含:
google
test
这里的问题是在整个目录中搜索任何匹配项,needle
并且该过程是单线程的,因此需要很长时间。也没有关于它是否未能找到匹配项的明确信息。