我试图使用bash从另一个文件打印输出到HTML文件.我试图从中提取的文件如下所示:
192.168.1.42 42.8G 45.1G
192.168.1.47 47.2G 35.8G
Run Code Online (Sandbox Code Playgroud)
我想要做的是将它写入一个带有"更多信息"按钮的表格,该按钮将是一个链接.这是我试图使用的"awk"命令:
awk '{print " <tr><td>"$1"</td><td>"$2"</td><td>"$3"</td><td><a href=#"$1"><button class="'"btn btn-primary btn-sm"'">More Info</button></a></td></tr>"}'
Run Code Online (Sandbox Code Playgroud)
输出到我正在寻找的HTML文档是:
<tr><td>192.168.1.42</td><td>42.8G</td><td>45.1G</td><td><a href=#192.168.1.42><button class="btn btn-primary btn-sm">More Info</button></a></td></tr>
Run Code Online (Sandbox Code Playgroud)
主要问题是"Button"类
无论如何我可以做这个或者更好的方式来做这个吗?
你得到00,因为它的结果btn-primary和btn-sm.您可能想要转义,"以便正确打印文本:
<button class=\"btn btn-primary btn-sm\">More Info</button>
^ ^
Run Code Online (Sandbox Code Playgroud)
您当前的
<button class="'"btn btn-primary btn-sm"'">More Info</button>
Run Code Online (Sandbox Code Playgroud)
尝试使用变量btn,primary并且sm,其没有被定义,并打印的结果btn - primary和btn - sm,这是0因为每变量没有定义.
更详细地了解awk操作未定义变量时的行为方式:
$ awk 'BEGIN{print a-b}'
0
Run Code Online (Sandbox Code Playgroud)
最后,printf可以帮助您以更好的方式处理价值观:
awk '{printf "<tr><td>%d</td><td>%d</td></tr>\n", $1, $2}' file
Run Code Online (Sandbox Code Playgroud)