我正在尝试使用awk来更改HTML表格中单元格的颜色。理想情况下,我可以使用awk在“Bob”之后找到“tg-6k2t”的第N个实例(在脚本中从早期传递的变量),并将颜色代码更改为“tg-b5xm”。这是一个巨大的HTML表,有许多不同的人的名字。
<tr>
<td class="tg-6k2t">Bob</td>
<td class="tg-6k2t"></td>
<td class="tg-6k2t"></td>
<td class="tg-6k2t"></td>
<td class="tg-6k2t"></td>
<td class="tg-6k2t"></td>
</tr>
我想要的输出是
<tr>
<td class="tg-6k2t">Bob</td>
<td class="tg-6k2t"></td>
<td class="tg-6k2t"></td>
<td class="tg-b5xm"></td>
<td class="tg-6k2t"></td>
<td class="tg-6k2t"></td>
</tr>
答案 0 :(得分:1)
您可以使用Awk
语句执行此操作,如下所示
awk -v count=6 '/"tg-6k2t".*Bob/{x=count}x--==1{sub(/tg-6k2t/,"tg-b5xm")}1' file
生成如下输出,意味着来自的第6行匹配Bob
的行,将变量更改为方便。
<tr>
<td class="tg-6k2t">Bob</td>
<td class="tg-6k2t"></td>
<td class="tg-6k2t"></td>
<td class="tg-6k2t"></td>
<td class="tg-6k2t"></td>
<td class="tg-b5xm"></td>
</tr>