Перезаписать часть файла без модификации в немодифицированный контент

Я бы хотел создать выделенный файл, скажем, 1 ГБ с контентом. Затем, надеюсь, используя некоторую утилиту командной строки, я бы хотел перезаписать на месте часть файла, скажем, начало 4 МБ, оставив остальную часть содержимого файла в тактике. Я проверил cp и dd, но у них, похоже, нет ничего подобного. Возможно, я ищу не в том месте и / или не понимаю последствия некоторых из вариантов.

Да, я мог бы сгенерировать программу на C, чтобы сделать это, но мое предпочтение переносимости – использовать ситуацию в командной строке.

Есть идеи?

Пример с dd :

 $ cat data insertion goes here: <...> $ cat insert ABC 123 XYZ $ dd if=insert skip=4 count=3 of=data seek=22 bs=1 conv=notrunc 3+0 records in 3+0 records out 3 bytes transferred in 0.001 secs (2918 bytes/sec) $ cat data insertion goes here: <123> 

Команда dd которую я использовал здесь, пропускает 4 блока во входной файл и затем считывает 3 блока. Блоки записываются в выходной файл после поиска 22 блоков. Выход не усечен. Один блок – один байт.

Это работает для меня:

 $ echo aaaaaaaaaa > a $ echo bbbbbbbbbb > b $ dd if=a of=b conv=notrunc ibs=1 obs=1 seek=3 count=4 $ cat b bbbaaaabbb