我有 2 个二进制文件 FileA
和FileC
它是这样的,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
-o
ls -l FileA | awk '{print $5; exit}'
stat -c %s FileA
确定大小后,您可以使用它tail
来提取文件的第二部分:
tail -c +$((sizeA + 1)) <FileC
如果您想将文件分成相等的块,请使用该split
命令。