Sobrescribir una parte de un file sin modificación en el contenido no modificado

Básicamente me gustaría crear un file asignado, digamos 1GB con contenido. Luego, con la esperanza de utilizar alguna utilidad de command-line, me gustaría sobrescribir una parte del file, digamos que al principio 4 MB SOLO dejando intactos el rest del contenido del file. Revisé cp y dd, pero parece que no tienen nada como esto. Tal vez estoy buscando en el lugar equivocado y / o no entiendo las implicaciones de algunas de las opciones.

Sí, podría generar un progtwig C para hacer esto, pero mi preference por la portabilidad es usar una situación de línea de command.

¿Algunas ideas?

Ejemplo con 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 transfernetworking in 0.001 secs (2918 bytes/sec) $ cat data insertion goes here: <123> 

El command dd que he usado aquí omite 4 bloques en el file de input y luego lee 3 bloques. Los bloques se escriben en el file de salida después de search 22 bloques en él. La salida no está truncada. Un bloque es un byte.

Esto funciona para mí:

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