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函数的最后一个参数修改为对应的分隔符。

效果图

posted @ 2014-01-23 22:35  westfly  阅读(1929)  评论(0编辑  收藏  举报