【发布时间】:2015-09-11 16:20:46
【问题描述】:
我正在使用单行 awk 来格式化 html 中的文件
(awk -v var="$tLen" 'BEGIN {OFS="\t"; } { for(i=1;i<=NF;i++) print "<td align=center ROWSPAN=" var ">" $i"</td>"; } END {}' $part1file ) >> "$output"
输出:
<td align=center ROWSPAN=4>921</td>
<td align=center ROWSPAN=4>0</td>
<td align=center ROWSPAN=4>29128</td>
<td align=center ROWSPAN=4>0</td>
<td align=center ROWSPAN=4>4f9ea...b6c4a</td>
<td align=center ROWSPAN=4>11/09/2015_13:09:44</td>
<td align=center ROWSPAN=4>1</td>
<td align=center ROWSPAN=4>0</td>
<td align=center ROWSPAN=4>20</td>
<td align=center ROWSPAN=4>4</td>
我需要退货:
<td align=center ROWSPAN=4>921</td>
<td align=center ROWSPAN=4>0</td>
<td align=center ROWSPAN=4>29128</td>
<td align=center ROWSPAN=4>0</td>
<td align=center ROWSPAN=4>4f9ea...b6c4a<br/>11/09/2015_13:09:44</td>
<td align=center ROWSPAN=4>1</td>
<td align=center ROWSPAN=4>0</td>
<td align=center ROWSPAN=4>20</td>
<td align=center ROWSPAN=4>4</td>
就在第 5 行的末尾,而不是用插入
关闭标签,然后是下一行数据,然后用
我尝试过类似的东西
(awk -v var="$tLen" 'BEGIN {OFS="\t"; } { for(i=1;i<=NF;i++) if (i==6) print "<br/>"; else print "<td align=center ROWSPAN=" var ">" $i"; if (i==5) print ""; else print "</td>"; } END {}' $part1file ) >> "$output"
但它不起作用。如果在 awk 中工作的条件,我会寻求帮助来实现这一点,任何关于这方面的信息将不胜感激。
【问题讨论】:
-
您能否也显示您的示例输入数据。
-
那“行不通”呢? (我的意思是它不会得到你想要的输出,但它应该“工作”,因为它对字段 6 做了一些不同的事情。)它不会做你想要的,因为你已经有 在您到达字段 6 时输出字段 5 的尾随
</td>(这应该是您的提示)。 -
为什么要使用子shell?在问题中显示的上下文中似乎没有必要。