gpt4 book ai didi

linux - 并行搜索 10000 个文件中的特定字符串模式

转载 作者:太空狗 更新时间:2023-10-29 12:20:12 24 4
gpt4 key购买 nike

问题陈述:-

我需要在大约 10000 个文件 中搜索特定的 String Pattern 并在包含该特定模式 的文件中找到记录。我可以在此处使用 grep,但这会花费很多时间。

下面是我在解压缩 dat.gz 文件

后用来搜索 特定字符串模式 的命令
gzcat /data/newfolder/real-time-newdata/*_20120809_0_*.gz | grep 'b295ed051380a47a2f65fb75ff0d7aa7^]3^]-1'

如果我简单的统计上面的dat.gz文件解压后有多少个文件

gzcat /data/newfolder/real-time-newdata/*_20120809_0_*.gz | wc -l

我得到了大约 10000 个文件。我需要在所有这些 10000 个文件 中搜索上述字符串模式,并找出包含上述 String Pattern 的记录。我上面的命令工作正常,但速度非常慢。

最好的方法是什么?我们是否应该一次获取 100 个文件 并在该 100 个文件中并行搜索特定的字符串模式

注意:

我正在运行 SunOS

bash-3.00$ uname -a
SunOS lvsaishdc3in0001 5.10 Generic_142901-02 i86pc i386 i86pc

最佳答案

不要不要并行运行!!!!这将使磁盘磁头到处弹跳,速度会慢得多。

由于您正在读取存档文件,因此有一种方法可以显着提高性能——不要写出解压缩的结果。理想的答案是解压缩到内存中的流,如果这不可行,则解压缩到 ramdisk。

在任何情况下,您都需要这里的一些并行性——一个线程应该获取数据,然后将其传递给另一个执行搜索的线程。这样你要么在磁盘上等待,要么在核心上等待解压缩,你不会浪费任何时间进行搜索。

(请注意,如果是 ramdisk,您需要主动读取它写入的文件,然后杀死它们,这样 ramdisk 就不会填满。)

关于linux - 并行搜索 10000 个文件中的特定字符串模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11978754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com