如何为sed替换命令使用不同的分隔符?

Der*_*rer 33 sed

我正在编写一个shell脚本来创建一些配置文件.我必须替换文件中的一些模式,并且应该用路径替换一个模式.

所以我的问题是:有没有办法用路径替换我的占位符webpath而不在斜杠前面设置反斜杠?

也许有另一种工具可以做到这一点?

gee*_*aur 55

您可以通过反斜杠将替代正则表达式分隔符用作搜索模式:

sed '\,some/path,d'
Run Code Online (Sandbox Code Playgroud)

并按原样使用它s:

sed 's,some/path,other/path,'
Run Code Online (Sandbox Code Playgroud)

但是,您可能希望保护其他元字符; 这是使用Perl和quotemeta其他脚本语言中的等价物的好地方.

来自man sed:

/regexp/
匹配与正则表达式匹配的行regexp.

\cregexpc
匹配与正则表达式匹配的行regexp.所述c可大于或反斜杠换行符其他任何字符.

s/regular expression/replacement/flags
将替换字符串替换为模式空间中正则表达式的第一个实例.可以使用除反斜杠或换行符之外的任何字符而不是斜杠来分隔RE和替换.在RE和替换中,如果前面有反斜杠,则RE分隔符本身可以用作文字字符.