使用 sed 我可以从 HTML 文件中提取数据吗?例如这样:
<html>
...
<table>
<tr>
<td>R1A</td><td>R1B</td>
<td>R1C</td><td>R1D</td>
</tr>
<tr>
<td>R2X</td><td>R2Y</td>
<td>R2W</td><td>R2Z</td>
</tr>
</table>
....
</html>
提取此输出:
R1A R1B R1C R1D
R2X R2Y R2W R2Z
在我的文本编辑器中我使用以下正则表达式:
/<tr>.*?<td>(.*?)</td>.*?<td>(.*?)</td>.*?<td>(.*?)</td>.*?<td>(.*?)</td>.*?</tr>/s
答案1
不是一个 sed 解决方案,而是一个 XSLT 解决方案
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="text" />
<xsl:template match="//table/tr">
<xsl:value-of select="descendant::td[1]"/>
<xsl:text> </xsl:text>
<xsl:value-of select="descendant::td[2]"/>
<xsl:text> </xsl:text>
<xsl:value-of select="descendant::td[3]"/>
<xsl:text> </xsl:text>
<xsl:value-of select="descendant::td[4]"/>
</xsl:template>
</xsl:stylesheet>