【问题标题】:How to do parallel search of a file ? (i want to search a file in one million files by parallaly )?如何并行搜索文件? (我想通过并行搜索一百万个文件中的一个文件)?
【发布时间】:2015-11-04 09:39:01
【问题描述】:
如何并行搜索文件? (我想在一百万个文件中找到一个文件)
通过该命令进行上述操作
find . -type f -print0 | xargs -0 -Pnumber_of_processes grep my_pattern
它给了Grep:没有这样的文件或目录,
这个命令实际上在做什么?
如何并行搜索文件? (即使我试过 find . -type f | parallel -j+1 grep my_pattern)
【问题讨论】:
标签:
unix
grep
xargs
gnu-parallel
【解决方案1】:
您的磁盘系统不太可能成为瓶颈,并行化 I/O 通常会导致您的磁盘系统变慢。
所以这可能是最快的:
find . | grep pattern
但如果您的磁盘系统比您的 CPU 更快,那么这应该可以工作:
find . -maxdepth 3 | grep pattern
find . -type d -maxdepth 3 | parallel 'find {} | grep pattern'
调整“3”以适合您的文件系统布局。