2017-09-29 155 views
1

要求: 要通过shell脚本生成CSS整合HTML页面 - awk生成HTML页面

CSS:(mystyles.css)

shell脚本命令:(generate_html.sh )

awk 'BEGIN {print "<head>"} 
    {print "<link rel="stylesheet" type="text/css" href="mystyles.css" media="screen" />"} 
    {print "</head>"} 
    {print "<table border="1" style=width:40% solid black >"} 
END {print "</table>"} 
{print "<tr bgcolor=#bfff80>\n<td>"NR, $0"</td>\n</tr>"}' server_list.txt > server_list.html 

例外:语法错误用于 '' mystyles.css的

awk: cmd. line:1:{print "<link rel="stylesheet" type="text/css" href="mystyles.css" media="screen" />"} 
awk: cmd. line:1:               ^syntax error 

请帮我解决这个问题。

+0

当您尝试打印它们时,您需要避开双引号 – CWLiu

回答

1
awk: cmd. line:1:{print "<link rel="stylesheet" type="text/css" href="mystyles.css" media="screen" />"} 
awk: cmd. line:1:               ^syntax error 

解决办法:你要逃离报价

看来你现有的代码,就会把链接,头,桌子和tr标签由AWK读取每个记录,这不正确生成HTML表:

awk 'BEGIN {print "<head>"} 
    {print "<link rel=\"stylesheet\" type=\"text/css\" href=\"mystyles.css\" media=\"screen\" />"} 
    {print "</head>"} 
    {print "<table border=\"1\" style=\"width:40% solid black\" >"} 
    END {print "</table>"} 
    {print "<tr bgcolor=\"#bfff80\">\n<td>"NR, $0"</td>\n</tr>"}' server_list.txt 

也许我猜你需要以下之一:

awk ' 
BEGIN{ 
     # meta header and loading css 
     print "<head>" 
     print "<link rel=\"stylesheet\" type=\"text/css\" href=\"mystyles.css\" media=\"screen\" />" 
     print "</head>" 

     # start table 
     print "<table border=\"1\" style=\"width:40% solid black\" >" 
    } 
     # print row and cell 
    { 
     print "<tr bgcolor=\"#bfff80\">\n<td>"NR, $0"</td>\n</tr>" 
    } 
END { 
     # close table tag 
     print "</table>" 
    } 
    ' server_list.txt 

例如与测试文件

$ cat testfile 
row1 
row2 
row3 
row4 

它将输出:

<head> 
 
<link rel="stylesheet" type="text/css" href="mystyles.css" media="screen" /> 
 
</head> 
 
<table border="1" style="width:40% solid black" > 
 
<tr bgcolor="#bfff80"> 
 
<td>1 row1</td> 
 
</tr> 
 
<tr bgcolor="#bfff80"> 
 
<td>2 row2</td> 
 
</tr> 
 
<tr bgcolor="#bfff80"> 
 
<td>3 row3</td> 
 
</tr> 
 
<tr bgcolor="#bfff80"> 
 
<td>4 row4</td> 
 
</tr> 
 
</table>

+0

感谢@Akshay进行整改。 html文件根据需要正确创建。不过,我的要求是将CSS样式表嵌入到HTML中。这是不正确的反映。以下是我的css文件内容。你能帮我在这里.......圆环文本display:table-cell; height:200px;/*改变这个和你的初始圆的大小的宽度*/ 宽度:200px; text-align:center; vertical-align:middle; border-radius:50%; /*使它漂亮*/ 背景:#555; color:#fff; font:18px“josefin sans”,arial;/*更改此字体大小和字体家族*/ } – Himansu

+0

嗨@MarcLambrichs,我试图嵌入到通过awk命令生成的HTML文件的CSS文件。请找到我使用的css文件。参考以下链接。 HTTPS://gist.github。com/hmsvigle/a7fbe88de3ff6eac318ac021f5d8d539 – Himansu

+0

@Himansu你没有使用class属性,请使用'class =“circle-text” –

0

莫非哟ü请尝试下面的内容,让我知道这是否有助于你。

awk 'BEGIN {print "<head>" \ 
    RS "<link rel=\"stylesheet\" type=\"text/css\" href=\"mystyles.css\" media=\"screen\" />" \ 
    RS "</head>" \ 
    RS "<table border=\"1\" style=width:40% solid black >" 
} 
{ 
    print "<tr bgcolor=#bfff80>\n<td>"NR, $0"</td>\n</tr>" 
} 
END {print "</table>"  
} 
' server_list.txt 

如果你很高兴与上面的命令的打印效果,那么你可能需要输出重新定向到文件命名为> server_list.html了。