2012-04-26 24 views
3

私は10バイトの0x00を含むバイナリファイルzero.binと5バイトの0x01を含むデータファイルdata.binを持っています。私はzero.binの最初の5バイトをdata.binに置き換えたいと思います。私はBash:バイナリファイルのいくつかのバイトを置換してください

dd if=data.bin of=zero.bin bs=1 count=5

を試みたが、zero.binは切り捨てられ、最終的には0x01での5バイトになります。私は0x00のテーリング5バイトを保持したい。

答えて

9

問題ありませんが、ちょうどconv=notruncを追加します。

dd if=data.bin of=zero.bin bs=1 count=5 conv=notrunc 
+0

素晴らしい!!ありがとう:) – Dagang

1

ソリューションの半分があります。その後、

dd if=zero.bin bs=1 seek=5 skip=5 of=tmp.bin 
mv zero.bin old.bin # paranoia 
mv tmp.bin zero.bin 
0

は、DD(1)を使用して立ち往生しないで、代わりにzero.binの一時ファイルtmp.binにそれを行います。他のツールは、例えば、あります

(cat data.bin && tail -c +5 zero.bin) > updated.bin 
関連する問題