html - 从 Unix shell 在电子邮件中嵌入动态 HTML 表

标签 html css bash shell unix

我想通过 UNIX shell 读取 csv 并创建动态 HTML 表。 csv 中的行数和列数每个月可能会有所不同,因此需要一个动态表。我在此处显示的代码创建了表,但表标题未显示为粗体。由于 CSS 不适用于电子邮件,因此我无法实现第一个子属性。

我在此处显示的代码创建了表格,但表格标题未显示为粗体。由于 CSS 不适用于电子邮件,因此我无法实现第一个子属性。

awk 'BEGIN{
FS=","
#print  "MIME-Version: 1.0"
#print  "Content-Type: text/html"
#print  "Content-Disposition: inline"
print  "<HTML>""<HEAD>"
print "<STYLE>"
print "TR:first-child {font-weight: bold;background-color: grey;}"
print "</STYLE>""</HEAD>"
print "<TABLE border="1">"
}
{
printf "<TR>"
for(i=1;i<=NF;i++)
printf "<TD>%s</TD>", $i
print "</TR>"
}
END{
print "</TABLE></BODY></HTML>"
}
' /home/test.csv  > /home/test_file.html

电子邮件中的预期表格输出:

Job name | Date     | Status
----------------------------- 
Job 1    | 08/08/19 | Success    
Job 2    | 08/09/19 | Failure    
Job 3    | 08/10/19 | Success

最佳答案

默认情况下,HTML 会识别表格头 TH 并加粗它们。这也适用于电子邮件。您想要调整代码以对标题行使用 TH,对后续行使用 TD。请参阅下面的示例;

# Top part of your code goes here to handle the headers...
{
    printf "<TR>"
    for(i=1;i<=NF;i++)
        printf "<TH>%s</TH>", $i
    print "</TR>"
}
# Rest of your code goes here, including subsequent rows using <TD>

如果您希望设置标题样式,可以使用 TH 选择器,如下所示;

<style>
    TH {
        background-color:gray;
        /* Other styles */
    }
</style>

关于html - 从 Unix shell 在电子邮件中嵌入动态 HTML 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57469814/

相关文章:

html - 无法在 css 中缩放图像

html - 如何使用纯 html 代码添加切换效果?

html - 带有图像和徽章的 li 元素

bash - 在 solaris 中将给定时间转换为秒

bash - 为什么 sudo cat 给出权限被拒绝但 sudo vim 工作正常?

linux - (bash) 如何找到文件系统支持的最大文件大小?

html - 可悬停的导航图标

javascript - 如何将 Google Analytics 集成到 jQueryMobile 网站中

jquery - 在鼠标悬停时更改网格 Bootstrap 中的图片

java - 向网站发送帖子请求