Busque files con un formatting de nombre de file particular, cat cada uno con un file de encabezado y guarde el resultado en el file original para cada uno de esos files

Tengo un montón de files html y quiero includelos a todos (individualmente) con un file de encabezado (varias líneas de longitud como mínimo), digamos header.txt. Estoy casi allí. Puedo grabar cada file con el file de cabecera con el siguiente command, pero ¿cómo puedo generar el resultado para savelo con el nombre de file original?

find . -iname "*.html" | xargs -L 1 cat header.txt 

Lo anterior imprime lo que quiero, pero ¿cómo puedo hacer reference al argumento xargs para agregar un nombre de file original> final?

En resumen, quiero insert el text de header.txt al principio de cada file html. ¿Puedo modificar el command anterior para hacerlo? ¿O alternativamente hay otras forms de lograr esto?


Como actualización, esto es lo que he intentado desde la publicación, que no ha funcionado:

 find . -iname "*.html" | xargs -L 1 cat header.txt {} > {}.new 

Esto funciona bien, excepto que se imprime en un file literalmente llamado {}.new . Ese file se ve como debería, pero esto no es útil.

También probé la sugerencia de @ Dave, pero hay un error de syntax que no puedo solucionar:

  find . -iname "*.html" -exec (cat header.txt; cat {}) > {}.new -bash: syntax error near unexpected token `(' 

Quiero insert el text de header.txt en el comienzo de cada file html.

Para anteponer los contenidos de header.txt a todos los files HTML, use este en línea:

 for i in `find . -name '*.html'` ; do cat /path/to/header.txt > "$i".tmp && cat "$i" >> "$i".tmp && mv "$i".tmp "$i" ; done 

Contenido de 1.html :

 first html file contents 

Contenido de header.txt :

 my header 

Contenido de 1.html después de ejecutar el script:

 my header first html file contents 

(Lo he probado, pero haz una copy de security de tus files por las dudas).

Puede usar un ciclo while, como el siguiente:

 find . -iname "*.html" | while read line; do cat header.txt "$line" > "${line}.new" ; done