【问题标题】:Find search and replace using sed使用 sed 查找搜索和替换
【发布时间】:2015-01-04 13:08:05
【问题描述】:

我发现以下命令非常适合通过 SSH 在服务器上查找和替换源代码中的单词,

我想在“文件夹”文件夹中用“replacement_word”替换单词“word”。

# find <folder> -type f -exec sed -i 's/<word>/<replacement_word>/g' {} \;

但是,如果我要查找的“单词”包含反斜杠,即“/Dev”,我该怎么写

我怎样才能找到和替换一大段文字

a) 完全匹配 b) 包含“喜欢”匹配项。

【问题讨论】:

  • 这和ssh有什么关系?您可以转义斜线 \/ 或为 s/// 命令使用另一个标记(s!!!s,,, 也可以)。
  • 如果您的 word / replacement_word 值在变量中,则您的 sed 需要使用双引号。我也同意 Etan 的观点。 # find -type f -exec sed -i "s###g" {} \;
  • 谢谢@EtanReisner,例如,用“/Development”替换“/Dev”的确切命令是什么?
  • s,/Dev,Development,s,/Dev,&amp;elopment, 在替换中使用 &amp; 表示 the part that matched
  • 非常感谢@EtanReisner,请问有什么想法可以找到和替换比一个单词更大的代码块吗?

标签: search replace sed find


【解决方案1】:

任何分隔符集都可以在s/// 命令中使用,而不仅仅是传统的/

因此,您可以为 s/// 命令使用另一个标记(s!!!s,,, 都很常见),或者您可以简单地转义斜线 \/

【讨论】:

    猜你喜欢
    • 2014-09-13
    • 2020-08-05
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 2019-11-29
    • 2012-07-08
    相关资源
    最近更新 更多