使用 Bash 获取一对 HTML 标签之间的内容

新手上路,请多包涵

我需要使用 bash 脚本获取一对给定标签之间的 HTML 内容。例如,具有以下 HTML 代码:

 <html>
<head>
</head>
<body>
 text
  <div>
  text2
    <div>
        text3
    </div>
  </div>
</body>
</html>

使用 bash 命令/脚本,给定 body 标签,我们将得到:

  text
  <div>
  text2
    <div>
    text3
    </div>
  </div>

提前致谢。

原文由 Joao 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 570
2 个回答

纯文本处理不利于 html/xml 解析。我希望这可以给你一些想法:

 kent$  xmllint --xpath "//body" f.html
<body>
 text
  <div>
  text2
    <div>
        text3
    </div>
  </div>
</body>

原文由 Kent 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 shell/bash 中使用 sed,所以你不需要安装其他东西。

 tag=body
sed -n "/<$tag>/,/<\/$tag>/p" file

原文由 BMW 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏