-1
我想通过Bash使用sed或awk解析来自网站的数据(随时改变我的方向来处理数据)。通过Bash解析表中的数据或数据
下面是一段代码示例。
<tbody>
<tr>
<td class="text-left">111</td><td class="text-center">
<a href="/path1.htm">AAA</a>
</td><td class="text-center">
<a href="/path2.htm" class="tp-link-policy">BBB</a>
</td><td class="text-center">
Updated October, 2016
</td>
</tr><tr>
<td class="text-left">CCC</td><td class="text-center">
<a href="/path3.htm">
.
.
.
.
</tr>
</tbody>
通常当我在PHP中使用的preg_match我有换行符没有问题,但在击我需要彻底改变我的正则表达式的想法。你是否建议首先准备数据以供sed和awk读取,以删除所有换行符,并根据我希望使用sed或awk的数据结构以不同的方式重新创建它们?
例如,我会为每个<tr>
创建一个换行符,所以结果如下所示?我是对的还是我应该离开这种想法?这会起作用,但我不喜欢操纵这样的数据。
<tbody>
<tr><td class="text-left">111</td><td class="text-center"><a href="/path1.htm">AAA</a></td><td class="text-center"><a href="/path2.htm" class="tp-link-policy">BBB</a></td><td class="text-center">Updated October, 2016</td></tr>
<tr><td class="text-left">CCC</td><td class="text-center"><a href="/path3.htm">....</tr></tbody>
输出应该是,例如:
111|AAA|BBB|Updated October, 2016
您的预期产出是多少? – Inian
如果您想对HTML做任何有用的操作,请不要使用基于行的文本处理工具,例如awk和sed。 –
对于命令行HTML解析,您可以查看“html2”(来自“xml2”包)或“hxpipe”及相关函数(来自“html-xml-utils”包)。他们都大致做你想做的事情。 –