Как разделить двоичный файл на несколько частей с фиксированным размером
Есть двоичный файл, его нужно разрезать на три части разного размера, чтобы заменить одну из них, и потом снова склеить. Какой командой это делается?
Ответы (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= и эффективно копировать бинарный файл, так как при чтении будет использоваться стандартный размер буфера.