Como extrair um padrão de múltiplas linhas

0

Eu estou querendo saber como extrair um padrão de várias linhas, especialmente quando esse padrão está se repetindo no texto.

O texto é assim:

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

o texto continua no mesmo formato:

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

Eu preciso da segunda célula dentro de cada <tr> ... </tr> ou seja, a saída deve ser (se houvesse apenas os dois% acima<tr> ... </tr>)

Pilialo
Makani Dav
    
por David Zhao 23.10.2018 / 02:52

1 resposta

1

Supondo que seu exemplo esteja contido em um documento HTML / XML válido (especificamente, há um único elemento raiz), e que, como o G-Man disse, você deseja a segunda célula da tabela de cada linha, é fácil com o XMLstarlet:

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

sel selecione no documento

-t aqui está o modelo:

-m '//tr/td[2]' corresponde ao segundo elemento td em tr em qualquer lugar

-v . mostra o valor de (texto dentro) do nó

-n acrescentar uma nova linha

    
por 23.10.2018 / 04:13