Question

how do I extract 12byte chunks from a binary file at certain positions within the file.

If I wanted to extract the first 12 bytes I could do something like

head -c12 file.bin>output

If I wanted to extract 12 bytes from byte61 I could do something like

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

Is there a simpler way if I have something like 20 12byte chunks I need to extract

thanks

Was it helpful?

Solution

Use dd:

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

You can write a shell loop to substitute the numbers.

You could also consider using awk, Perl or Python, if there's a lot of them to do or it needs to be really fast.

OTHER TIPS

Using xxd:

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

3d means 61 in hexadecimal

Using hexdump:

hexdump -ve '16/1 "%0.2x " "\n"' -s 3d -n 12 file.bin > output
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top