我正在尝试编写一个bash脚本,该脚本将在给定的HTML文件中进行搜索,找到是否存在没有FQDN的CSS样式引用并将其添加到内联。
例如:
我有一个包含以下代码的HTML文件:
<link rel="stylesheet" type="text/css" href="my.domain/css/main.css"; />
<link rel="stylesheet" type="text/css" href="css/main2.css" />
<link rel="stylesheet" type="text/css" href="css/wraper_page.cs " />
<link rel="stylesheet" type="text/css" href="css/Menu.Skin" />
所以我希望脚本覆盖整个文档的所有选项(忽略现有的http引用|为丢失的一个添加FQDN |请考虑&#34; .cs&#34;文件)。 而且 - 如果我想为我的FQDN使用变量?以1美元为例? 所以我按照以下方式运行脚本:&#39; ./ myscript.sh my.domain&#39;
谢谢!
答案 0 :(得分:0)
这样的事情应该做:
sed -E '\|type="text/css"| s|href="(my.domain)?/?|href="my.domain/|' data
答案 1 :(得分:0)
扩展 bash
+ xmlstarlet
解决方案:
示例input.html
文件:
<html>
<link rel="stylesheet" type="text/css" href="my.domain/css/main.css" />
<link rel="stylesheet" type="text/css" href="css/main2.css" />
<link rel="stylesheet" type="text/css" href="css/wraper_page.cs " />
<link rel="stylesheet" type="text/css" href="css/Menu.Skin" />
</html>
add_domain_to_url.sh
脚本:
#!/bin/bash
domain="$1"
xmlstarlet ed -O -L -u "//link[not(starts-with(@href, '$domain'))]/@href" -x "concat('$domain/', .)" "$2"
签名:bash add_domain_to_url.sh <domain_name> <filepath>
用法:
bash add_domain_to_url.sh "my.domain" input.html
最终input.html
内容:
<html>
<link rel="stylesheet" type="text/css" href="my.domain/css/main.css"/>
<link rel="stylesheet" type="text/css" href="my.domain/css/main2.css"/>
<link rel="stylesheet" type="text/css" href="my.domain/css/wraper_page.cs "/>
<link rel="stylesheet" type="text/css" href="my.domain/css/Menu.Skin"/>
</html>