Awk输出' 00'而不是正确的格式

时间:2014-09-16 09:31:53

标签: bash awk

我正在尝试使用bash从另一个文件打印输出到HTML文件。我试图从中提取的文件如下所示:

192.168.1.42    42.8G    45.1G
192.168.1.47    47.2G    35.8G

我要做的是将其写入带有"更多信息"按钮,这将是一个链接。这是" 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>"}'

输出到我正在寻找的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>

主要问题是&#34;按钮&#34;类

无论如何我可以做这个或者更好的方式来做这个吗?

1 个答案:

答案 0 :(得分:5)

您收到00,因为它是btn-primarybtn-sm的结果。您可能想要转义"以便正确打印文本:

<button class=\"btn btn-primary btn-sm\">More Info</button>
              ^                       ^

您当前的

<button class="'"btn btn-primary btn-sm"'">More Info</button>

尝试使用未定义的变量btnprimarysm,并打印btn - primarybtn - sm的结果, 0根据未定义的变量。

更详细地了解awk在操作未定义变量时的行为:

$ awk 'BEGIN{print a-b}'
0

最后,printf可以帮助您更好地处理价值观:

awk '{printf "<tr><td>%d</td><td>%d</td></tr>\n", $1, $2}' file