将两个HTML文件合并为主HTML文件

inc*_*nez 13 html linux merge join

假设我有以下HTML文件:

html1.html

<html>
  <head>
    <link href="blah.css" rel="stylesheet" type="text/css" />
  </head>
  <body>
    <div>this here be a div, y'all</div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

html2.html

<html>
  <head>
    <script src="blah.js"></script>
  </head>
  <body>
    <span>this here be a span, y'all</span>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我想获取这两个文件并制作一个如下所示的主文件:

<html>
  <head>
    <link href="blah.css" rel="stylesheet" type="text/css" />
    <script src="blah.js"></script>
  </head>
  <body>
    <div>this here be a div, y'all</div>
    <span>this here be a span, y'all</span>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这可以使用简单的Linux命令吗?我试图寻找加盟,但它看起来像一个共同的领域连接,而且我不一定要去拥有共同的领域......我只需要基本加区别,但也有主体结构依然完好(我想这可以称为左连接?).看起来cat不会起作用...因为通过附加一个文件然后下一个等合并.

如果没有简单的Linux命令,我的下一步是编写一个逐行比较两个脚本的脚本,或创建一个以某种方式引用这两个单独文件的主HTML文件.

bkx*_*kxp 5

您可以使用html-merge工具合并多个HTML文件,并保留其内部超文本链接。这是一个win32程序,但是您可以使用Wine在Linux中运行它。下载页面:https : //sourceforge.net/projects/htmlmg/files/


Lar*_*lke 5

使用pandoc合并例如当前目录中的所有html文件:

pandoc -s *.html -o output.html
Run Code Online (Sandbox Code Playgroud)


Rob*_*een 4

您的示例文件是格式良好的 XHTML。出色的!这意味着您可以使用简单的 XSLT 脚本。请参阅如何使用 XSLT 合并两个 XML 文件

  • 有时可以使用“xmllint”“修复”混乱的 HTML (2认同)
  • 请您告诉我您是如何使用 XSLT 做到这一点的。您能否分享您用来解决此问题的脚本链接或方法。 (2认同)