如何用Shell脚本将a.html的title标签替换到b.html中
解决方案
可以用以下Shell脚本实现需求,核心思路是先从a.html提取完整的<title>标签行,再替换掉b.html里的对应行:
#!/bin/bash # 从a.html中提取包含<title>的整行内容 title_from_a=$(sed -n '/<title>/p' a.html) # Linux环境下直接修改b.html(GNU sed) sed -i "s/<title>.*<\/title>/$title_from_a/" b.html # 如果是macOS(BSD sed),请替换成下面这行命令 # sed -i '' "s/<title>.*<\/title>/$title_from_a/" b.html
命令说明
sed -n '/<title>/p' a.html:只筛选并打印a.html里包含<title>的行,精准拿到我们需要的完整title标签内容。sed -i "s/<title>.*<\/title>/$title_from_a/" b.html:用正则匹配b.html中从<title>到</title>的整段内容,直接替换成从a.html提取的title行。用双引号是为了让Shell自动解析变量$title_from_a。
执行脚本后,b.html的<title>标签就会被替换为a.html的对应内容,和你给出的示例结果完全一致。
内容的提问来源于stack exchange,提问作者Donut
相关产品推荐
相关产品推荐

