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

Gre*_*reg 0 bash awk

我试图使用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"类

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

fed*_*qui 5

你得到00,因为它的结果btn-primarybtn-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 - primarybtn - 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)