亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 shell 腳本結果轉換為 HTML 表

將 shell 腳本結果轉換為 HTML 表

慕尼黑8549860 2023-10-04 15:12:37
請幫助我通過電子郵件將 shell 腳本的結果轉換為 HTML 表。我編寫了一個 shell 腳本,它將給出以下格式的輸出。Directory Name: /a/b/cBusiness Date: 20200323Expected_files_1:2Expected_files_2:14Actual_files_1: File count changes each dayActual_files_2: File count changes each dayComments of Actual_files_1Comments of Actual_files_2Other Comments我想使用 shell 腳本將上述結果轉換為 HTML 表。預期的 HTML 表格:該表應始終包含兩行,一行是標題,另一行是腳本中的變量值。第一行是 HTML 表格的標題,它將始終保持不變。第二個表的值每天都會變化。由于我是 HTML/Shell 腳本編寫的初學者,所以我不知道如何編寫一個腳本來給出上述 HTML 格式的結果。任何幫助,將不勝感激
查看完整描述

2 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

假設您的輸出存儲在/tmp/output.txt中,請嘗試以下操作:


./yourscript.sh > /tmp/output.txt

awk -F ':' 'BEGIN { print "<html>\n<body>\n<table>\n\t<tr>" } { print "\t\t<th>"$1"</th>" } END { print "\t</tr>" }' /tmp/output.txt

awk -F ':' 'BEGIN { print "\t<tr>" } { print "\t\t<td>"$2"</td>" } END { print "\t</tr>\n</table>\n</body>\n</html>" }' /tmp/output.txt

返回


<html>

<body>

<table>

        <tr>

                <th>Directory Name</th>

                <th>Business Date</th>

                <th>Expected_files_1</th>

                <th>Expected_files_2</th>

                <th>Actual_files_1</th>

                <th>Actual_files_2</th>

                <th>Comments of Actual_files_1</th>

                <th>Comments of Actual_files_2</th>

                <th>Comments Other</th>

        </tr>

        <tr>

                <td> /a/b/c</td>

                <td> 20200323</td>

                <td>2</td>

                <td>14</td>

                <td> File count changes each day</td>

                <td> File count changes each day</td>

                <td></td>

                <td></td>

                <td></td>

        </tr>

</table>

</body>

</html>

如果您確保腳本輸出的每一行都具有相同的key: value格式,那么您會更輕松。如果您與我們分享您的腳本,我們可能會為您提供進一步幫助。


查看完整回答
反對 回復 2023-10-04
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

這是一個兩步過程:


將列轉置為行,使用冒號作為輸入/輸出分隔符:

awk -f tst.awk inputfile.txt > result.txt

tst.awk 包含以下代碼:


BEGIN { FS=OFS=":" }

{

    for (rowNr=1;rowNr<=NF;rowNr++) {

        cell[rowNr,NR] = $rowNr

    }

    maxRows = (NF > maxRows ? NF : maxRows)

    maxCols = NR

}

END {

    for (rowNr=1;rowNr<=maxRows;rowNr++) {

        for (colNr=1;colNr<=maxCols;colNr++) {

            printf "%s%s", cell[rowNr,colNr], (colNr < maxCols ? OFS : ORS)

        }

    }

}

  1. 用于將點 1 的輸出轉換為 html 表格格式:有一個簡單的腳本可用于執行此操作:https: //sourceforge.net/projects/command-output-to-html-table/可用于轉換任何命令輸出或文件為漂亮的 html 表格格式。您可以為此腳本指定分隔符,包括制表符、換行符等特殊分隔符,并通過頂部的 html 搜索獲取 html 表格格式的輸出。只需下載腳本,解壓并發出以下命令:

cat result.txt | { cat ; echo ; } | ./tabulate.sh -d ":" -t "My Report" -h "My Report" > output.html

這里 : 作為分隔符。

我在這里附加了一個示例output.html:https ://sourceforge.net/projects/my-project-files/files/output.html/download


查看完整回答
反對 回復 2023-10-04
  • 2 回答
  • 0 關注
  • 255 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號