如何根据模式拆分二进制文件?

如何根据模式拆分二进制文件?

我想根据模式“xÚ”(十六进制为 78 DA)将二进制文件拆分为较小的文件,因此当文件中有“xÚ”时,拆分器脚本会拆分内容并将其粘贴到新文件中,直到找到另一个“xÚ”。新创建的文件应以“xÚ”开头。

FreeBSD awk,,优先grepsh

答案1

编辑:

好的,下面是清理混乱的情况:

awk 'BEGIN { RS=""; FS=/\x78\xda/ } { for (i = 1; i <= NF; i++) print $i > i }' YOUR_BIN_FILE

空的 RS 仍可能导致意外结果,因为它会使 awk 在空白行处分隔记录。事实上,很难避免将文件拆分成记录。解决这个问题的一种方法是将记录分隔符设置为文件中不存在的某种模式。另一种方法是按 78da 分隔记录并处理每条记录。

相关内容