替换当前目录和子目录下的所有文件中的字符串

替换当前目录和子目录下的所有文件中的字符串

我想替换A/comp with B/comp当前目录和子目录下的字符串。

我尝试发布这个 find ./ -type f -exec sed -i -e 's/A/Comp/B/comp/g' {} \;

/分隔符似乎是错误的并且不能替换所需的字符串。

答案1

s中的命令不sed被绑定/为分隔符:

s/BRE/replacement/flags

用替换字符串替换模式空间中的 BRE 实例。可以使用除 <backslash> 或 <newline> 之外的任何字符代替 <slash> 来分隔 BRE 和替换。在 BRE 和替换中,如果 BRE 分隔符前面有 <backslash>,则 BRE 分隔符本身可以用作文字字符。

来源

  • 可以使用未出现在A/compand中的分隔符B/comp,例如:

    s|A/comp|B/comp|g
    

    您选择分隔符。 甚至sZA/compZB/compZgs A/comp B/comp g都可以。

  • 或者,如果您选择坚持使用/,请转义每个/应按字面意思理解的字符:

    s/A\/comp/B\/comp/g
    

相关内容