我有两个HTML文件--a.htmlb.html.我想用a.html分之一的标题标签替换b.html中的标题标签.

我们将如何使用shell 脚本来实现这一点?我知道如何使用sed命令在同一文件中进行简单的替换.

a.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document AAAAA</title>
</head>
<body>
    This is Document A
</body>
</html>

b.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document BBBB</title>
</head>
<body>
    This is Document B
</body>
</html>

b.html - afer running the script-通知"文件bbbbb"改为"文件AAAAA"

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document AAAAA</title>
</head>
<body>
    This is Document B
</body>
</html>

推荐答案

GNU sed:

title=`sed -n "s/^.*<title>\(.*\)<\/title>.*$/\1/p" a.html`; \
sed -i "s/^\(.*<title>\).*\(<\/title>.*\)$/\1$title\2/" b.html

BSD/OS X sed:

title=`sed -n "s/^.*<title>\(.*\)<\/title>.*$/\1/p" a.html`; \
sed -i '' "s/^\(.*<title>\).*\(<\/title>.*\)$/\1$title\2/" b.html

本质上,它接受a.html,用其标题(\1组)替换内容,并将结果设置为title变量.

然后,使用非常类似的正则表达式,它将b.html中的标题替换为变量并保存b.html.

Html相关问答推荐

为什么从输入步骤中的扣减不能按预期进行?

有没有一种方法可以动态地从网格或Flexbox中取出HTML元素?

窗口视图之外的下拉菜单位置

当光标悬停在(相同)父元素上方时,为多个子元素创建不同的过渡动画

Angular -表和源映射中未显示的数据错误

Chatbox底部显示新消息,并向上推送旧消息

元素在向x提供溢出时被隐藏

我如何确保我的网格永远不会小于它的子网格

阴影部分内部的ionic Select 元素

调整 Rmarkdown 输出的 html_document 的标题和副标题之间的间距

如何将内容放置在侧边栏旁边?

在HTML请求中添加源URL

如何垂直平移一个元素,使其新位置位于另外两个元素之间?

绝对类在另一个绝对类之上

在锥形渐变进度条内创建空白的问题

如何在图片前面放置下拉框?

我正在使用 react-router-dom 并创建了一个固定的导航栏,它在每个网页上不断改变大小,我不知道为什么

嵌套固定定位的 Div 滚动条渗透到前景中的 Div

是否有一种静态方式可以根据暗模式 Select 一张或另一张图像?

使用 CSS 的发光边框动画没有流畅的过渡