在 bash 中插入 HTML 區塊的最佳方法

在 bash 中插入 HTML 區塊的最佳方法

我一直在編寫一個腳本,該腳本收集有關伺服器的資料並將其格式化為漂亮的 html 電子郵件報告。到目前為止,我一直在使用 sed 來替換 html 模板中的值,這基本上沒問題,但我遇到過一種情況,我需要根據變數插入任意次數的多行 html 區塊。我不太確定如何做到這一點,因為 sed 似乎對多行的處理不太好?也許有一種我沒有考慮過的 perl 或 awk 方法。

這是一個範例,我需要根據現有範本中的文件數量將 0-n 個表塊插入現有範本中

對於 $files 中的 f

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

ETC。

謝謝!

答案1

使用此處文件:

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

這將輸出與 中的單字一樣多的區塊$files,並將命名變數擴展為其各自的值。

答案2

你可以嘗試一下“snippets”,很多文字編輯器或IDE都支援這個功能。您可以為編碼區塊自訂一些範本並為其命名,然後您可以鍵入名稱和選項卡將其擴展到編碼區塊。此外,您可以使用 Tab 鍵編輯佔位符。

相關內容