【问题标题】:How to search html file for css reference without FQDN and add it?如何在没有 FQDN 的情况下搜索 html 文件以获取 css 引用并添加它?
【发布时间】:2018-06-23 12:54:21
【问题描述】:

我正在尝试编写一个 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 | 还要考虑“.cs”文件)。 还有 - 如果我想为我的 FQDN 使用一个变量?例如使用 $1? 所以我将按如下方式运行脚本:'./myscript.sh my.domain'

谢谢!

【问题讨论】:

    标签: html bash sed scripting


    【解决方案1】:

    应该这样做:

    sed -E '\|type="text/css"| s|href="(my.domain)?/?|href="my.domain/|' data
    

    【讨论】:

      【解决方案2】:

      扩展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 &lt;domain_name&gt; &lt;filepath&gt;


      用法:

      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>
      

      【讨论】:

      • 试过了。我使用 apt-get 安装 xmlstarlet 并尝试您的脚本。它提供了很多输出但没有任何改变......:\
      猜你喜欢
      • 2018-06-22
      • 1970-01-01
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 2019-08-27
      • 1970-01-01
      相关资源
      最近更新 更多