减去二进制文件

减去二进制文件

我有 2 个二进制文件 FileAFileC

它是这样的,FileC = FileA + FileB使用该cat实用程序

我如何减去 FileA 才能 FileC 得到 FileB

PS:我使用的是Ubuntu Oneiric

答案1

假设您stat的平台上有 的大小FileA,您可以执行以下操作:

dd if=./FileC of=./FileB bs=1 skip=$(stat -c %s ./FileA)

它应该适用于任何类型的文件。

答案2

你需要知道在哪里削减。对于二进制文件,这通常意味着知道FileA或的大小FileB

FileA您可以通过找到 的大小ls -l。如果您需要编写可移植脚本,则可以使用 提取大小(或者,对于没有和选项ls -lgo FileA | awk '{print $3; exit}'的不符合 POSIX 的版本,使用)。在非嵌入式 Linux 上,获取大小的更简单方法是.ls-g-ols -l FileA | awk '{print $5; exit}'stat -c %s FileA

确定大小后,您可以使用它tail来提取文件的第二部分:

tail -c +$((sizeA + 1)) <FileC

如果您想将文件分成相等的块,请使用该split命令。

相关内容