Como dividir arquivo binário com base no padrão?

5

Eu gostaria de dividir um arquivo binário em arquivos menores com base no padrão 'xÚ' (é 78 DA em hexadecimal), então quando há um 'xÚ' no arquivo, o script splitter divide e cola o conteúdo em um novo arquivo até que outro 'xÚ' possa ser encontrado. Os arquivos recém-criados devem começar como 'xÚ'.

FreeBSD awk , grep , sh preferido.

    
por freebsdnewbie 10.08.2010 / 21:19

1 resposta

2

EDITAR:

Ok, aqui está a limpeza dessa bagunça:

awk 'BEGIN { RS=""; FS=/\x78\xda/ } { for (i = 1; i <= NF; i++) print $i > i }' YOUR_BIN_FILE

O RS vazio ainda pode estar causando resultados inesperados, pois gera registros independentes em linhas em branco. Na verdade, é difícil contornar a divisão de um arquivo em registros. Uma maneira de resolver isso é definir o separador de registro para algum padrão que não esteja presente no arquivo. Outra maneira seria separar os registros por 78da e processar todos os registros.

    
por 11.08.2010 / 01:06

Tags