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

标签 bash split binary

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

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

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

最佳答案

您可以使用两个独立的 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 .

关于bash:在预定义位置拆分二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28857244/

相关文章:

mysql - 从 bash 脚本查询 MySQL 数据库

linux - Bash 测试并执行目录模式是否存在

python - 将字符串与包含字符串列表的 pandas 系列相匹配

python - 将大型数据帧(pandas)分割成 block (但在分组之后)

math - 数字的意义-947483647

bash - 需要一个shell脚本来将big endian转换为little endian

linux - 如何使用 bash 中程序的输出重命名文件?

java - 如何使用正则表达式将字符串按最后一个字符拆分?

binary - 如何使用 float 执行舍入到偶数

list - 在方案中将包含二进制数的列表转换为十进制和十六进制