小编S9o*_*vyF的帖子

awk 多行非贪婪匹配解决方法

我正在尝试使用 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 不支持它。有可能的解决方法吗?

html awk

4
推荐指数
2
解决办法
124
查看次数

标签 统计

awk ×1

html ×1