2010-01-07 16 views
6

cómo extraer 12 bits de un archivo binario en ciertas posiciones dentro del archivo.cómo extraer bytes específicos de un archivo utilizando unix

Si quería extraer los primeros 12 bytes que podría hacer algo así como

head -c12 file.bin>output 

Si quería extraer 12 bytes de byte61 que podía hacer algo así como

head -c72 file.bin|tail -c12 >output 

¿Existe un sencillo manera si tengo algo así como 20 trozos de 12 bytes necesito extraer

gracias

Respuesta

15

Uso dd:

dd bs=1 seek=60 count=12 if=file.bin of=output 

Usted puede escribir un bucle de Shell para sustituir los números.

También podría considerar usar awk, Perl o Python, si hay muchos de ellos o necesita ser realmente rápido.

+11

en Linux con coreutils 8.13 se omita ** ** ** en lugar de iSeek * *: 'dd bs = 1 skip = 60 count = 12 if = file.bin of = output' –

+0

+1 Genial =) Las cosas son muy simples en Unix y Linux – Viet

1

Usando xxd:

xxd -p -seek 3d -l 12 file.bin > output 

3d significa 61 en hexadecimal

Usando hexdump:

hexdump -ve '16/1 "%0.2x " "\n"' -s 3d -n 12 file.bin > output 
Cuestiones relacionadas