bash:在预定义位置拆分二进制文件

时间:2015-03-04 14:40:49

标签: bash split binary

我有二进制文件,其中包含各种长度的数据结构。我想将这些数据块保存到单独的文件中。每个块的大小是已知的。 split命令可以拆分文件,但在第一个数据块之后不会停止。它将文件切成相同大小的片段。

因此,我当前的解决方案是将splitcat文件的其余部分重新组合在一起,遍历数据。这非常笨拙,在某些情况下甚至可能会失败。

在某些位置精确切割二进制文件的最佳方法是什么?

1 个答案:

答案 0 :(得分:6)

您可以使用两个独立的dd命令。一个是任意寻求,另一个是任意长度。

SEEK=501
BYTES=387
dd if=yourfile bs=$SEEK skip=1 | dd bs=$BYTES count=1 > lump.bin

注意:尽管与您实际尝试的内容相反,但请将块大高和低数量保持在一起以获得最佳性能。我的意思是,如果你想要8192个字节,请使用bs=8192 count=1而不是bs=1 count=8192