首页 > 解决方案 > 将 shell 脚本结果转换为 HTML 表格

问题描述

请帮助我通过电子邮件将 shell 脚本的结果转换为 HTML 表格。我编写了一个 shell 脚本,它将以以下格式提供输出。

Directory Name: /a/b/c
Business Date: 20200323
Expected_files_1:2
Expected_files_2:14
Actual_files_1: File count changes each day
Actual_files_2: File count changes each day
Comments of Actual_files_1
Comments of Actual_files_2
Other Comments

我想使用 shell 脚本将上述结果转换为 HTML 表。

预期的 HTML 表格: 输出

该表应始终包含两行,一是标题,另一行是脚本中的变量值。第一行是 HTML 表格的标题,它将始终保持不变。第二个表的值每天都在变化。

因为我是 HTML/Shell 脚本的初学者,所以我不知道编写一个脚本,它会给我上面的 HTML 格式的结果。

任何帮助,将不胜感激

标签: htmlshellunixscripting

解决方案


这是一个两步过程:

  1. 将列转置为行,以冒号作为输入/输出分隔符:
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


推荐阅读