Tenho trabalhado em um script que coleta dados sobre servidores e os formata em um belo relatório de e-mail em HTML. Eu tenho usado sed para substituir valores em um modelo html até agora e isso tem sido bastante bom, mas me deparei com uma situação em que preciso inserir um bloco de múltiplas linhas de html com base em variáveis um número arbitrário de vezes. Não tenho certeza de como fazer isso, já que o sed não parece funcionar muito bem com várias linhas. Talvez haja uma maneira com perl ou awk que eu não tenha considerado.
Aqui está um exemplo em que eu precisaria inserir blocos de tabela 0-n em um modelo existente com base em quantos arquivos estivessem lá
para f em $ arquivos
<tr class="details">
<td> f.$DATE </td>
<td> f.$APPLIANCE </td>
<td> f.$HOST </td>
<td> f.$MDL </td>
</tr>
etc.
Obrigado!
Responder1
Use um documento aqui:
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
Isso gerará o bloco quantas vezes houver palavras nele $files
, com as variáveis nomeadas expandidas para seus respectivos valores.
Responder2
Você pode experimentar os "snippets", muitos editores de texto ou IDE suportam esse recurso. Você pode personalizar algum modelo para bloco de codificação e nomeá-lo, então você pode digitar o nome e a guia para expandi-lo para o bloco de codificação. Além disso, você pode tabular para editar os espaços reservados.