複数行パターンを抽出する方法

複数行パターンを抽出する方法

特に、テキストでパターンが繰り返される場合は、複数行のパターンを抽出する方法を知りたいです。

テキストは次のとおりです。

<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>

各セルから2番目のセルをインポートする必要があります<tr> ... </tr> 。つまり、出力は次のようになります(上記の2つのセルしかない場合<tr> ... </tr>)。

Pilialo
Makani Dav

答え1

あなたの例が有効なHTML / XML文書(具体的にはルート要素を持つ)に含まれており、G-Manが言ったように2番目のものが欲しいとします。テーブルセル各行にXMLstarletを使用するのは簡単です。

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

sel文書から選択

-tテンプレートは次のとおりです。

-m '//tr/td[2]'td任意の位置で2番目の要素と一致します。tr

-v .出力ノードの値(内部テキスト)

-n改行文字を追加

関連情報