我正在尝试提取之间的数据
<td></td>
标签,但如果我使用类似的东西
awk -F"<td>" {' $1 ":" $2 '}
它将在第 1 列和第 2 列之后输出剩余的 html 数据,如何在两者之间提取并仅提取数据/字符串本身?
答案1
这就是你想要的:
$ awk -F'</*td>' '$2{print $2}' someFile
这是通过定义一个匹配开始<td>
和结束的分割参数来实现的</td>
。这将中间的字符串隔离为 field $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