【问题标题】:Searching and replacing a line in linux?在linux中搜索和替换一行?
【发布时间】:2011-12-01 17:43:26
【问题描述】:

如何在目录中的每个文件中查找和替换 {% extends "a/b/c/d" %} 的每个实例和另一个 {% extends "e/f/g/h" %}?另外,如果在同一行的语句之后有任何内容,我想保留它。

我已经使用 perl 进行了如下查看:

perl -pi -e 's/find/replace/g' *.html

但我不知道 perl,也不知道在我的查找/替换字符串中转义所有字符的最佳方法(即 {./、" 等)。

有更简单的解决方案吗?

【问题讨论】:

    标签: linux perl sed grep


    【解决方案1】:

    您可以在 perl 的 s/find/replace/g 语法中使用 / 以外的其他字符 这样您就不必转义 a/b/c/d 中的所有正斜杠:

    perl -pi -e 's|{% extends "a/b/c/d" %}|{% extends "e/f/g/h" %}|g' *.html
    

    【讨论】:

      【解决方案2】:
      sed -i -e 's/{% extends "\/a\/b\/c\/d"/{% extends "\/e\/f\/g\/h/g"' *.html
      

      sed -i -e 's|{% extends "a/b/c/d"|{% extends "e/f/g/h"|g' *.html
      

      【讨论】:

        猜你喜欢
        • 2012-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-08
        • 1970-01-01
        • 2017-01-05
        • 2011-08-15
        • 2014-06-24
        相关资源
        最近更新 更多