【问题标题】:sed replacement does not worksed 替换不起作用
【发布时间】:2010-04-02 18:44:12
【问题描述】:

我在使用 sed 时遇到问题。 我需要替换由许多文件组成的非常不推荐使用的 HTML 站点中的一些行。 我的脚本不起作用,我不知道为什么。当我尝试使用 Netbeas 找到确切的模式时,它起作用了。

find . -type f -name "*.htm?" -exec sed -i -r 's/ing\. Šuhajda Dušan\, Mírová 767\, 518 01 Dobruška\, \+420 737 980 333\,/REPLACEMENT/g' {} \;

错在哪里? 是否有替代文本而不搜索正则表达式但纯文本的替代方法? 感谢您的回复。

【问题讨论】:

  • 你的sed 命令对我有用。您的字符串是否可能跨越多行?如果是这样,sed 命令必须更复杂。

标签: bash sed


【解决方案1】:

是的,有一个名为 replace 的简单命令行工具,语法如下:

replace "string 1" "string 2" -- *.html

【讨论】:

  • 谢谢。下次我在提问之前搜索存储库。
  • 请注意,它是 mysql 客户端的一部分,而不是 coreutils 或单独包的一部分。
【解决方案2】:

没有必要转义逗号,因为它并不特殊。

find . -type f -iname "*.htm?" -exec sed -i.bak -r 's/ing\. Šuhajda Dušan, Mírová 767, 518 01 Dobruška, \+420 737 980 333,/REPLACEMENT/g' "{}" +;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 2015-03-24
    • 2011-07-06
    • 1970-01-01
    • 2020-09-29
    • 2020-04-12
    相关资源
    最近更新 更多