【发布时间】:2017-05-31 06:30:37
【问题描述】:
我想使用 awk 将我的表格格式化为 html 格式。
猫表.txt
COL1 COL2 COL4 COL5 COL3
BRCC hete 15869 105A 1
BRAC he 1799967 956G 1
BCAS he 7334543 369AFVC 2
RCA he 9534262 7806-14 4
RCA he 144848 1114A 5
RA he 206118 52A 5
BCAVV he 543304 3807TCD 5
BCA hoo 106091515 4308TDDSC 1
BCA hoo 206075 4563A 1
BCA hoo 799917 2612CDSA 1
BCA hoo 206076 513G 2
BCA hoom 16941 3113A 3
我的 awk 解决方案:
awk 'BEGIN {print "<table>"} ; { print "<tr><td width="80">" $1 "</td><td width="80">" $2 "</td><td width="150">" $3 "</td><td width="150">" $4 "</td><td>" $5 "</td><tr>"} ; END { print "</table>"}' table.txt
我有两个问题:
1.问题:
我需要添加{print "<table>"}字体样式,如:
awk 'BEGIN {print "<table style='font-size:8.0pt;font-family:"Verdana","sans-serif"'>"} ;
...
但是引用有错误:
awk: cmd. line:1: BEGIN {print "<table style=font-size:8.0pt
awk: cmd. line:1: ^ unterminated string
awk: cmd. line:1: BEGIN {print "<table style=font-size:8.0pt
awk: cmd. line:1: ^ syntax error
zsh: no such file or directory: font-family:Verdana,sans-serif>"} ; { print "<tr><td width="80">" $1 "</td><td width="80">" $2 "</td><td width="150">" $3 "</td><td width="150">" $4 "</td><td>" $5 "</td><tr>"} ; END { print "</table>"}
2。问题:
我想用“======”标记在我的表格中添加“边框”。所以输出看起来像:
COL1 COL2 COL4 COL5 COL3
===========================
col1 col2 col4 col5 col3
col1 col2 col4 col5 col3
col1 col2 col4 col5 col3
col1 col2 col4 col5 col3
===========================
【问题讨论】:
-
问题一:
print "<table style=\047font-size:8.0pt;font-family:\"Verdana\",\"sans-serif\"\047>" -
问题1已解决,非常感谢!
-
我会创建一个模板文件,其中包含所有这些 html 标签、css 内容,并留下一些占位符。并且 awk 加载模板文件,并读取输入,将数据填充到占位符中。通过这种方式,您可以在不更改数据填充逻辑(awk 脚本)的情况下更改模板(外观)。
-
@Kent 谢谢你的好主意.. 请你创建一个例子你将如何解决这个任务?
-
@kent a soution and a question using templates Metaprogramming in awk
标签: html bash awk sed formatting