html - 从 shell 中杀死 HTML 节点

标签 html linux sed html-parsing

需要一个解决方案来杀死像 <footer>foobar</footer> 这样的节点和 <div class="nav"></div>来自许多 HTML 文件。

我想将一个没有菜单和页脚的站点转储到磁盘上。理想情况下,我会使用像 sed 这样的基本 unix 工具来完成这项任务。因为它不是 XML,所以我不能使用 xmlstarlet .

谁能推荐食谱,这样我就可以理想地运行一个脚本 kill-node.sh 'div class="toplinks"' *.html修剪我不想要的部分。谢谢,

最佳答案

sed 基于正则表达式。使用正则表达式解析 html 是一个在 SO 上反复出现的主题,参见例如 regular expression to extract text from HTML甚至更好 Can you provide some examples of why it is hard to parse XML and HTML with a regex? .

就是说,如果 html 页面是以类似的方式编写的,您仍然可以构建一个可以完成这项工作的正则表达式,但要做好准备,这是不可能的(是的,理论上可以证明不可能)构建一个完整的解决方案在所有情况下都使用正则表达式。

关于html - 从 shell 中杀死 HTML 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2757602/

相关文章:

Javascript 知道何时加载新页面

java - 使用 jsch 将文件从 linux 服务器目录复制到其他目录

c - YACC 文件是否有文件包含机制?

javascript - Chrome 渲染内联 block 高度错误

html - 打开 float 层的按钮[帮助]

linux - 添加 '&' 是否使其作为守护进程运行?

bash - 删除 csv 文件的第一列

regex - sed 4.2.2 中的数字匹配错误?

html - css - 背景位置 : center center; makes image disapper

linux - 如果在 Linux 中找到匹配的字符串,如何跳过期望工作并继续处理