Shell脚本使用sed删除包含特定文本的HTML标记

时间:2013-12-02 15:49:06

标签: bash shell sed pattern-matching

我正在寻找一种方法来删除(如果可能的话,使用sed)包含特定单词的html标签。 例如,删除包含 foo 一词的每个 div 标记。 div当然可以包含多行。例如:

<body>
    <div>
        This div will be <i>deleted</i>.
        Why ?
        Because it contains foo.
    </div>

    <div>
        This div doesn't contains the forbidden word.
        <b>So it won't be deleted.</b>
    </div>
</body>

我找到了删除html标签的方法,但没有关于包含特定文本的标签的方法。谢谢!

1 个答案:

答案 0 :(得分:2)

单独使用sed是不可能的。 Sed是一个单线处理器。如果你想要一个使用sed / bash / grep的脚本,你需要创建一个解析div内容的解析器,只打印不包含你想要的文本的div。说真的,找一个html解析器。