-1
我最近发现这个解决方案通过基于可用内核的压缩gz文件。有没有什么办法通过bz2文件parellelly grep
find . -name "*.gz" | xargs -n 1 -P 3 zgrep -H '{pattern to search}'
P.S. 3是核心数
我想知道是否有办法为bz2文件做它。 目前我使用的命令如下:
find -type f -name '*.bz2' -execdir bzgrep "{text to find}" {} /dev/null \;
只是代替''zgrep'在bzgrep'的'xargs'? – blm
呃?并行化的并不是那么简单,而是一丝不苟。实际上,在任何地方你都没有'少'的问题......并且你在简单的方式上同时并行多个文件,但每个文件只有一个执行线程,而不是唯一的 - 有时候 - 可能的方式是,从多个点并行解压缩同一文件(这要求将压缩器配置为定期重置自身并构建新表格 - 从而实现并行解码,而性能和输出大小需要一定的成本)。 –
另外,你当前的gzip版本不适用于所有可能的文件名,因为它以面向行的形式从'find'获取输出,但文件名允许包含文字换行符。为了完全安全,您需要使用NUL分隔符(不能存在于由C字符串表示的文件名或其他内容中)。 –