我正在尝试使用 awk 提取 HTML 列表的内容。一些列表条目是多行的。
示例输入列表:
<ul>
<li>
<b>2021-07-21:</b> Lorem ipsum
</li>
<li>
<b>2021-07-19:</b> Lorem ipsum
</li>
<li><b>2021-07-10:</b> Lorem ipsum</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我正在使用的命令:
awk -v RS="" '{match($0, /<li>(.+)<\/li>/, entry); print entry[1]}' file.html
Run Code Online (Sandbox Code Playgroud)
电流输出:
<b>2021-07-21:</b> Lorem ipsum
</li>
<li>
<b>2021-07-19:</b> Lorem ipsum
</li>
<li><b>2021-07-10:</b> Lorem ipsum
Run Code Online (Sandbox Code Playgroud)
期望的输出:
<b>2021-07-21:</b> Lorem ipsum
<b>2021-07-19:</b> Lorem ipsum
<b>2021-07-10:</b> Lorem ipsum
Run Code Online (Sandbox Code Playgroud)
我知道问题是因为列表条目没有用空行分隔。我想过使用非贪婪匹配,但显然 awk 不支持它。有可能的解决方法吗?