특히 텍스트에서 패턴이 반복되는 경우 여러 줄 패턴을 추출하는 방법을 알고 싶습니다.
텍스트는 다음과 같습니다.
<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
개행 문자 추가