2010-01-07 92 views
6

如何从文件中某些位置的二进制文件中提取12byte块。如何使用unix从文件中提取特定字节

如果我想提取前12个字节我可以做类似

head -c12 file.bin>output 

如果我想提取byte61我可以做类似

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

12个字节有没有更简单方式如果我有像20 12byte块我需要提取

谢谢

回答

15

使用dd

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

你可以写一个shell循环来替代数字。

你也可以考虑使用awk,Perl或Python,如果有很多事情要做或者它需要非常快。

+11

的Linux上的coreutils 8.13是** **跳过,而不是** iseek * *:'dd bs = 1 skip = 60 count = 12 if = file.bin of = output' – 2012-05-19 08:01:28

+0

+1 Great =)Unix和Linux中的事情非常简单 – Viet 2012-10-25 06:02:19

1

使用XXD:

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

3d指以十六进制

61使用hexdump都:

hexdump -ve '16/1 "%0.2x " "\n"' -s 3d -n 12 file.bin > output 
相关问题