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

Azi*_*ale 1 binary bash split

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

因此,我目前的解决办法是splitcat该文件的剩余部分重新走到一起,通过数据迭代我的方式.这非常笨拙,甚至可能在某些情况下失败.

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

Mar*_*ell 6

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

SEEK=501
BYTES=387
dd if=yourfile bs=$SEEK skip=1 | dd bs=$BYTES count=1 > lump.bin
Run Code Online (Sandbox Code Playgroud)

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