【问题标题】:How to escape one double quote with sed如何用 sed 转义一个双引号
【发布时间】:2014-03-20 03:47:46
【问题描述】:

我正在尝试使用sed 编辑一个网页。 我需要找到所有href="/foa 链接并让他们说 href="www.url/foa 代替。

我一直很难让它工作。 对于普通语法,我会使用sed -i 's/string/string2/g' <filename>。 使用正斜杠,我可以使用 \/ 转义那些有效的。 但我似乎无法弄清楚如何将单双引号放入搜索和替换流中。

我需要它的原因是唯一标识我要更换的部件。 /foa 存在于多个部分,我唯一需要更改的是href="/foa

【问题讨论】:

    标签: regex shell replace sed escaping


    【解决方案1】:

    不建议使用 sed 进行 HTML 操作,但您可以使用;

    sed -i 's~href="/foa~href="www.url/foa~g' file.html
    

    【讨论】:

    • 什么是可取的?
    • DOM 解析器支持多种语言,如 PHP、Python、Java 等。
    • 是的,我正在考虑在 php 中执行此操作。但是我的 shell 脚本非常接近完成。感谢您的解决方案!
    • 是的 PHP 很好,但不幸的是在标准 Unix/Linux 中没有这样的实用程序。
    【解决方案2】:

    使用sed,会很灵活,不会只固定foahref="之后的任何链接都会添加

    sed -r 's/(href=")([^"]*)/\1www.url\2/' file
    

    【讨论】:

      猜你喜欢
      • 2011-11-17
      • 2017-09-13
      • 2015-11-06
      • 2011-11-22
      • 2020-11-26
      • 2013-02-24
      • 2011-04-19
      相关资源
      最近更新 更多