如何提取多行图案

如何提取多行图案

我想知道如何提取多行模式,特别是当该模式在文本中重复时。

文字如下:

<tr>
<td>Wife</td>
<td>Pilialo</td>
</tr>
<tr>
<td>Wind</td>
<td>Makani Dav</td>
</tr>
...

文本以相同的格式继续:

<tr>
<td>some text</td>
<td>some text2</td>
</tr>

我需要获取每个单元格中的第二个单元格<tr> ... </tr> ,即输出应该是(如果只有上述两个单元格<tr> ... </tr>

Pilialo
Makani Dav

答案1

假设您的示例包含在有效的 HTML/XML 文档中(具体来说,有一个根元素),并且正如 G-Man 所说,您想要第二个表格单元格对于每一行,使用 XMLstarlet 很容易:

< /tmp/xml xmlstarlet sel -t -m '//tr/td[2]' -v . -n
Pilialo
Makani

sel从文档中选择

-t这是模板:

-m '//tr/td[2]'匹配任意位置td下的第二个元素tr

-v .输出节点(内部文本)的值

-n追加换行符

相关内容