Как разделить двоичный файл на несколько частей с фиксированным размером

Есть двоичный файл, его нужно разрезать на три части разного размера, чтобы заменить одну из них, и потом снова склеить. Какой командой это делается?


Ответы (1 шт):

Автор решения: Vadik

Например, есть файл input.bin, его нужно разделить на три части: 10 байт, 11 байт и оставшееся число байт. Воспользуемся командой dd:

dd iflag=skip_bytes,count_bytes if=input.bin of=01.bin skip=0 count=10
dd iflag=skip_bytes,count_bytes if=input.bin of=02.bin skip=10 count=11
dd iflag=skip_bytes,count_bytes if=input.bin of=03.bin skip=21

После всех необходимых манипуляций с частями, соединяем их обратно с помощью cat:

cat 01.bin 02.bin 03.bin > output.bin

В команде dd я использовал флаги skip_bytes и count_bytes для того, чтобы в параметрах skip и count указывать размер в байтах. Это позволяет не задавать параметр bs= и эффективно копировать бинарный файл, так как при чтении будет использоваться стандартный размер буфера.

→ Ссылка