我正在尝试编写一个bash脚本,该脚本将在给定的HTML文件中进行搜索,找到是否存在没有FQDN的任何CSS样式引用并将其添加到内联中。
例如:
将href="css/style.css"
替换为href="http://my.domain/css/style.css"
(当然目录并不总是“css”。可以是其他任何东西......)
由于
答案 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"