【问题标题】:search and replace/add some tag attributes in html files recursively递归搜索和替换/添加html文件中的一些标签属性
【发布时间】:2016-06-02 22:38:47
【问题描述】:

我希望这个问题的用例对于在这个网站上提出这个问题来说不是太具体。我有一个非常简单的问题,但我认为它有助于了解更通用的方法以及通过命令行工具为可能遇到此问题的其他人使用搜索和替换方法。

我的问题:

我有一个包含几千个 html 文件的目录结构,我想做的是:

只要有一个带有id 属性集的标签,我想给它添加一个class="anchor",或者如果已经有一个或多个类,另外添加类“anchor”。

所以我想替换任何

<someTag id="some-id">

<someTag id="some-id" class="anchor">

和任何

<someTag id="some-id" class="some-class">

<someTag id="some-id" class="some-class anchor">

当然,它们之间可能混合了各种属性,所以我需要某种搜索和替换方法来正确识别尖括号之间的这些东西。

我使用的是 Ubuntu,所以我手边有各种命令行工具,比如 sed,但我对它们的使用不是很熟练。因此,如果在这方面有更多经验的人知道一个快速的解决方案,那将对我有很大帮助。

非常感谢您阅读和思考它,如果您有任何建议,那就太好了。

【问题讨论】:

    标签: html linux replace command-line pattern-matching


    【解决方案1】:

    HTML is famously difficult to parse with a regexp 所以我不知道。

    也许这个难度被夸大了?

    还是由“常规”HTML 中不存在的特殊情况触发?

    我不确定所有问题是什么,但该问题的非开玩笑答案可能会解释它。

    该网站是否使用 javascript,使用该网站的网络浏览器是否启用了 javascript?因为我猜想在用户浏览器中使用 javascript 在运行时进行这些编辑(向页面中的元素添加类)很容易(或更容易)(因为浏览器已经解析了 HTML 并构造了一个 DOM) .

    另外,我不确定您为什么要向具有 id 的元素添加类;如果原因是 CSS 中引用了类名,则另一种方法可能是将这些 ID(用逗号与类名分隔)添加到 CSS。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-31
      • 2012-08-24
      • 2017-11-12
      • 1970-01-01
      • 2012-12-17
      • 2015-07-28
      • 1970-01-01
      • 2023-04-06
      相关资源
      最近更新 更多