사이의 데이터를 추출하려고합니다.
<td></td>
태그를 사용하지만 다음과 같은 것을 사용하면
awk -F"<td>" {' $1 ":" $2 '}
열 1과 2 뒤에 나머지 html 데이터가 출력됩니다. 그 사이에서 데이터/문자열 자체만 추출하려면 어떻게 해야 합니까?
답변1
이것이 당신이 원하는 것입니다:
$ awk -F'</*td>' '$2{print $2}' someFile
이는 <td>
start 및 end 와 일치하는 분할 매개변수를 정의하여 달성됩니다 </td>
. 이렇게 하면 중간 문자열이 필드로 분리됩니다 $2
. $2
정의된 경우 나머지가 인쇄됩니다.
예
$ cat someFile
!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML>
<HEAD>
<TITLE>
A Small Hello
</TITLE>
</HEAD>
<BODY>
<table><td>hello world</td></table>
<table><td>hello world</td></table>
<table><td>hello world</td></table>
<table>
<td>hello world</td>
</table>
<H1>Hi</H1>
<P>This is very minimal "hello world" HTML document.</P>
</BODY>
</HTML>
산출:
$ awk -F'</*td>' '$2{print $2}' someFile
hello world
hello world
hello world
hello world