여러 줄 패턴을 추출하는 방법

여러 줄 패턴을 추출하는 방법

특히 텍스트에서 패턴이 반복되는 경우 여러 줄 패턴을 추출하는 방법을 알고 싶습니다.

텍스트는 다음과 같습니다.

<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개행 문자 추가

관련 정보