首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在大文件中搜索4-5字节序列

在大文件中搜索4-5字节序列
EN

Stack Overflow用户
提问于 2012-03-22 12:27:32
回答 3查看 575关注 0票数 0

我有大约1.5 of的文件,我需要在这个文件中找到30亿字节的序列。一个序列可以是4个或5个字节。找到第一个位置,或确保这样的序列在文件编号中。怎样才能做到最快?

计算机上的RAM限制-4 4GB

EN

回答 3

Stack Overflow用户

发布于 2012-03-22 12:51:07

使用grep。它对于在大文件中查找内容进行了高度优化。

如果这不是一个选择,请阅读它使用的Boyer-Moore algorithm并自己实现它。不过,要重现grep同样的速度,需要进行大量的调整。

票数 1
EN

Stack Overflow用户

发布于 2012-03-22 13:04:51

使用预处理。

我认为你应该创建一个Index,遍历文件,记录每个唯一的4字节序列的第一个实例。将4字节序列和第一个出现位置存储在不同的文件中,按字节序列排序。

在索引文件上使用简单的二进制搜索将有效地找到您的序列。

您可以更聪明地使用散列将搜索减少到O(1)。

票数 0
EN

Stack Overflow用户

发布于 2014-01-31 22:34:11

看看Searchlight搜索引擎。

该程序允许在单个文件中存储最多10个ASCII字节的多个序列。然后将它指向一个文件、目录、文件名文件、目录名文件、文件名数组列表或目录名数组列表,然后它就消失了!!

此外,它还报告找到的每个序列的文件字节位置/偏移量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9816435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档