如何在unix中使用AWK替换html标记中的/mask值



我有一个包含敏感数据的html文件。我想屏蔽这些值,如何使用AWK来做到这一点?我是shell脚本的新手,所以如果你能帮助我编写代码,我将不胜感激。

输入文件

<html>
<body>
<hr><br><>span class="table">Records</span><table>
<tr class="column">
<td>ID</td>
<td>Name</td>
<td>Address</td>
<td>City</td>
<td>Code</td>
<td>Account</td>
<td>Phone</td>
<td>Country</td>
</tr>
<tr class="data">
<td>12345678</td>
<td>James Watson</td>
<td>Ivy Estate Rd</td>
<td>New York</td>
<td>NY03XXXX</td>
<td>00003458</td>
<td></td>
<td>United States</td>
</tr>
</table>
</body>
</html>

预期输出

<html>
<body>
<hr><br><>span class="table">Records</span><table>
<tr class="column">
<td>ID</td>
<td>Name</td>
<td>Address</td>
<td>City</td>
<td>Code</td>
<td>Account</td>
<td>Phone</td>
<td>Country</td>
</tr>
<tr class="data">
<td>1##4##7#</td>
<td>J##e# #a##o#</td>
<td>I## E##a## R#</td>
<td>N## Y##k</td>
<td>N##3##X#</td>
<td>0##0##5#</td>
<td></td>
<td>United States</td>
</tr>
</table>
</body>
</html>

据我所知,AWK不太适合像HTML这样的层次结构文本。如果您仍然坚持,也许您可以尝试使用全局变量来指示应该处理哪些行。最后,你的代码可能看起来低于

BEGIN {
flag=0
}
{
if(flag) {
if(match($0, "</tr>")) {
flag = 0
print
} else {
# run your replacement code here
print
}
} else {
print
if(match($0, "class="data"")) {
flag = 1
}
}
}

相关内容

  • 没有找到相关文章

最新更新