awk 在 html 表数据之间选择列

awk 在 html 表数据之间选择列

我正在尝试提取之间的数据

<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

参考

相关内容