[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: DD или другие альтернативы, заменить область файла



On 2013-12-25 13:03:42 +0000, yuri.nefedov@gmail.com said:

On Wed, 25 Dec 2013, Dmitriy Sirant wrote:

Добрый день

Казалось бы простая нужда, но сделать не удалось.

Есть бинарный файл, в котором произвольные данные в диапазоне 0x00040000 -> > 0x0017FFFF необходимо заменить на 0xFF

Берем dd и делаем следующее:
printа 0xFF | dd bs=1 seek=0x00040000 count 1310719 conv=notrunc > if=source.bin of=dest.bin

Получаем практически то что нам надо, но все 0xFF которые были до в исходном > файле до оффсета 0x00040000 стали 0x00, те что в нужном мне диапазоне > остались как и были. Возможно поменяло и после диапазона, не проверял. В > исходном файле присутствуют как 0xFF так и 0x00


   Вы пытаетесь на вход dd подсунуть два потока 1) printa (кстати, что
   это такое?) 2) if=source.bin
   Честно говоря, я бы на месте dd обиделся бы.

Это я писал по памяти. Там prinf FF было. А с 2 потоками действительно, но никто не ругался :)


   Надо просто скопировать source.bin в dest.bin, а затем

   pv /dev/zero | tr \\000 \\377 | \  # это вместо printа 0xFF
   dd bs=1 seek=0x00040000 count 1310719 conv=notrunc of=dest.bin

   как раз и получится, что надо.

Да, это оно ! Спасибо. Видимо действительно проблема была с двумя потоками.



Reply to: