Text-Processing

如何提取多條線的圖案

  • October 23, 2018

我想知道如何提取多行模式,尤其是當這種模式在文本中重複時。

文本如下所示:

<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

假設您的範例包含在有效的 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追加換行符

引用自:https://unix.stackexchange.com/questions/477146