Shell统计报表表格生成
基本需求
分析完数据后,一般需要将数据以附件的形式发送处理,这个已经在《》中有介绍,如何
用Python实现附件的发送。
但不是所有人都关心附件的内容,一般邮件中需要有些概要的信息,如附件信息的统计信息等。
这就需要以表格的形式发送出来。
如何设计一个通用的产生Table的函数,对模块的复用性大有益处。
一个表格必备的有表格名,表格各列的解释,数据。
如下是我的尝试(代码说明问题)
function GenerateTable() { local header="$1" local title="$2" shift 2 awk -v header="$header" -v title="$title" 'BEGIN{ printf("<head><H3>%s</H3><head>\n",header) split(title,array, " "); len = length(array); printf("<table border=\"1\" width=\"600\">\n"); printf("<tr><th>seq</th>") for (i = 1; i <= len; ++i) printf("<th>%s</th>",array[i]); }{ printf("<tr><td align=\"center\">%d</td>", NR); for(i = 1; i <=NF; ++i) { printf("<td align=\"center\"> %s</td>\n", $i); } }END{ print "</table>"; }' $* }
注意,默认的分隔符为\t, 如果是csv文件以“,”分隔的,请修改awk 的-F参数,并将split函数的最后一个参数修改为对应的分隔符。
效果图