如何在没有FQDN的情况下搜索html文件以获取css参考?

时间:2018-01-13 14:05:15

标签: html css bash sed

我正在尝试编写一个bash脚本,该脚本将在给定的HTML文件中进行搜索,找到是否存在没有FQDN的任何CSS样式引用并将其添加到内联中。

例如: 将href="css/style.css"替换为href="http://my.domain/css/style.css"

(当然目录并不总是“css”。可以是其他任何东西......)

由于

2 个答案:

答案 0 :(得分:0)

    [root@h2g2w lib]# cat toto
    href=css/style.css
    href=other/style.css
    href=example/style.css
    href=css/style.css
    href=css/style.css
    href=css/style.css
[root@h2g2w lib]# sed  -i "s/href=\(.*\)\/*.css/href=http:\/\/my.domain\/\1/" toto

[root@h2g2w lib]# cat toto
href=http://my.domain/css/style
    href=http://my.domain/other/style
    href=http://my.domain/example/style
    href=http://my.domain/css/style
    href=http://my.domain/css/style
    href=http://my.domain/css/style
[root@h2g2w lib]# 

[root@h2g2w lib]# 

您需要将子目录名称隔离为搜索模式上的子模式&替换模式(。*)将其替换为替换模式中替换模式中的\ 1替换/模式/替换/

命令中的

sed -i "s/href=\(.*\)\/*.css/href=http:\/\/my.domain\/\1/"

替换href =(copy)/whatever.css by href = http://my.domain/PASTE/end现有行

现在你可以适应你的需求

用http搜索lignes 在

命令之前
sed  ':v/http/ ......

使用您选择的模式。 现在你可以根据自己的需要进行调整

答案 1 :(得分:0)

 $ sed -i 's|href=".*/style.css|href="http://my.domain/style.css|g' file.txt


 $ cat file.txt
 href="one/style.css"
 href="css/style.css"
 href="style/style.css"
 href="check/style.css"
 href="two/somethingelse"

结果:

$ sed 's|href=".*/style.css|href="http://my.domain/style.css|g' file.txt
href="one/style.css"
href="css/style.css"
href="style/style.css"
href="check/style.css"
href="two/somethingelse"