我正在搜索一个巨大的~600 Mb文件,找到一个长度为7个十六进制值的特定模式。问题是
我通过摆脱所有回车来摆脱问题1,但即使价值在下一行,我仍然面对我不知道如何搜索地址线。以下是一个例子:
0x000001A0: 36 5B 09 76 99 31 55 09 78 99 34 51 49 BF E0 03
0x000001B0: 28 0B 0A 03 0B E0 07 28 0B 0A 03 0B 49 58 09 35
例如:我希望能够找到模式49 BF E0 03 28 0B 0A
,该模式跨越上面的第1行和第2行但我不能只是定期搜索它,因为开头是0x000001B0:
任何建议或c ++代码或excel想法将有所帮助。我现在正在使用VIM打开这个大文件,使用excel不会打开整个文件。
答案 0 :(得分:1)
Python,只需读入行,拆分,查看第一部分,将十六进制连接成一个字符串,然后搜索。像这样的东西会起作用:
hex = ""
for each line in lines:
tmp = line.split() // split on whitespace
hex += tmp[1:] // grab everything after address
if hex.contains(pattern):
# do something
或者使用正则表达式,但是你得到了基本的想法。
答案 1 :(得分:0)
您可以使用循环缓冲区。