【发布时间】: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,&elopment,在替换中使用&表示the part that matched。 -
非常感谢@EtanReisner,请问有什么想法可以找到和替换比一个单词更大的代码块吗?