linux - 使用 sed 删除从特定 HTML 字符串到特定字符串的所有内容

标签 linux bash shell sed html-parsing

我有一个 html 文件,里面有这个:

<div id="date">Saturday 04.08.18<br><div id="time">23<img src="media/images/sec.gif">59</div></div>

我想从 html 文件中删除这个完整的元素,但值每分钟都在变化(因为是时间)

我试过这个从另一个人那里编辑的命令,但它不起作用。

sed -z -r -i 's#<div id="date">[^<]*</div></div>\n?##g' 1.htm

我认为这可能行不通,因为元素中开始了另一个 html 元素?

最佳答案

一种可能的解决方案如下:

sed -r -e 's#<div id="date">.*</div></div>\n?##g' 1.htm

它所做的基本上是用空字符串替换包含 div 标记和 date id 的行,后跟大于零(或等于)的字符,以两个结束的 div 标签,加上一个换行符

关于linux - 使用 sed 删除从特定 HTML 字符串到特定字符串的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51688826/

相关文章:

linux - awk/sed/grep 删除与另一个文件中的字段匹配的行

bash 在文件的每一行中搜索字符串

linux - 在 unix 中批量重命名文件并回滚

linux - 有人可以建议一个快速的 oneliner 在 unix 中将 20111214 转换为 2011.12.14 吗?

linux - ctypes.util.find_library 是否符合 Linux 中的 "usual"库链接实践?

php - rpmbuild php 包无法创建目录权限被拒绝然后 %install

bash - 如何检查是否有多个具有相同名称前缀的文件

linux - sendmsg 失败,错误代码 3 (ESRCH)

bash - GNU 按索引号并行组合输入参数

linux - 大括号扩展不起作用 bash