我正在使用一个 bash 脚本来替换文件中两个字符串之间的特定文本。它看起来像这样:
GATEWAYURL = 'myDomain.com'
CONFIGFILE = 'full/path/to/config.file'
replacementString1="s/(?<=gatewayIp:).*(?=,)/\"${GATEWAYURL}\"/;"
perl -pi -e $replacementString1 $CONFIGFILE
这非常适合在文件中创建如下所示的一行:
gatewayIp:"the.old.domain.name.com",
看起来像这样:
gatewayIp:"myDomain.com",
一切都很好,但对于我的生活,我无法弄清楚如何让它工作以替换部分 url。例如我想要:
redirectUri: "http://the.old.domain.name.com/oauth2callback.html",
成为:
redirectUri: "http://myDomain.com/oauth2callback.html",
我认为这会起作用:
replacementString1="s/(?<=redirectUri: \"http:\/\/).*(?=\/oauth2callback.html)/${GATEWAYURL}/;"
但是我收到以下错误:
Substitution pattern not terminated at -e line 1.
我已经尝试了很多其他方法来逃避 url 中的 // 和 / 但似乎无法让它正常工作。