Assumindo que você tem stat
no seu plateform para obter o tamanho de FileA
, você poderia fazer algo como:
dd if=./FileC of=./FileB bs=1 skip=$(stat -c %s ./FileA)
que deve funcionar em qualquer tipo de arquivo.
Eu tenho 2 arquivos binários FileA
e FileC
É assim que FileC = FileA + FileB
usando o utilitário cat
Como faço para subtrair FileA
de FileC
para obter FileB
?
Você precisa saber onde cortar. Para arquivos binários, isso geralmente significa saber o tamanho de FileA
ou FileB
.
Você pode encontrar o tamanho de FileA
com ls -l
. Se você precisar escrever um script portátil, poderá extrair o tamanho com ls -lgo FileA | awk '{print $3; exit}'
(ou, para versões não compatíveis com POSIX de ls
que não tenham as opções -g
e -o
, ls -l FileA | awk '{print $5; exit}'
). No Linux não embarcado, uma maneira mais simples de obter o tamanho é stat -c %s FileA
.
Depois de ter o tamanho, você pode usar tail
para extrair a segunda parte do arquivo:
tail -c +$((sizeA + 1)) <FileC
Se você quiser dividir um arquivo em partes iguais, use o comando split
.