La mejor manera de insertar bloques de HTML en bash

La mejor manera de insertar bloques de HTML en bash

He estado trabajando en un script que recopila datos sobre servidores y los formatea en un bonito informe de correo electrónico html. He estado usando sed para reemplazar valores en una plantilla html hasta ahora y en general ha estado bien, pero me he encontrado con una situación en la que necesito insertar un bloque de múltiples líneas de html basado en variables una cantidad arbitraria de veces. No estoy seguro de cómo hacer esto, ya que sed no parece funcionar muy bien con varias líneas. Quizás haya una forma con perl o awk que no había considerado.

Aquí hay un ejemplo en el que necesitaría insertar bloques de tabla 0-n en una plantilla existente en función de la cantidad de archivos que había allí.

para f en archivos $

  <tr class="details">
        <td> f.$DATE </td>
        <td> f.$APPLIANCE </td>
        <td> f.$HOST </td>
        <td> f.$MDL </td>
  </tr>

etc.

¡Gracias!

Respuesta1

Utilice un documento aquí:

for f in $files; do
    cat <<END_HTML
  <tr class="details">
        <td> f.$DATE </td>
        <td> f.$APPLIANCE </td>
        <td> f.$HOST </td>
        <td> f.$MDL </td>
  </tr>
END_HTML
done

Esto generará el bloque tantas veces como palabras haya en $files, con las variables nombradas expandidas a sus respectivos valores.

Respuesta2

Puede probar los "fragmentos", muchos editores de texto o IDE admiten esta función. Puede personalizar alguna plantilla para el bloque de codificación y nombrarla, luego puede escribir el nombre y la pestaña para expandirla al bloque de codificación. Además, puede tabular para editar los marcadores de posición.

información relacionada