需要一个解决方案来杀死像 <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/