2010-01-07 93 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 
相關問題