2010-01-07 16 views
6

kullanarak bir dosyadan belirli bayt ayıklamak için nasıl dosya içinde belli pozisyonlarda bir ikili dosyadan 12byte parçalar ayıklamak yapmak. Bennasıl unix

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

gibi bir şey yapabileceğini byte61 12 bayt ayıklamak istiyorsa

head -c12 file.bin>output 

gibi bir şey yapabileceğini ilk 12 bayt ayıklamak istiyorsa

orada daha basit mi 20 12byte parçaları gibi bir şeye sahip olursam

ayıklamak istiyorum

cevap

15

Kullanım dd:

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

Rakamları yerine bir kabuk döngü yazabilir.

awk, Perl veya Python'u kullanmayı düşünebilirsiniz, eğer bunların birçoğu varsa veya gerçekten hızlı olması gerekiyorsa.

+11

** yerine ** iseek ait * *: 'dd bs = 1 atlama = 60 sayısı = 12 = output' –

+0

1 Muhteşem = file.bin =) şeyler Unix ve Linux bu kadar basit olursa – Viet

1

kullanma XXD:

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

3d HexDump kullanarak onaltılık

yılında 61 şu anlama gelir: o ** atlamak edilir coreutils 8.13 ile Linux'ta

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