我想自动反斜杠变量,以便最终用户不需要键入反斜杠来替换 Perl 正则表达式字符串。
API_URI="http://something/api"
FIND="(API_URI)(.*?[\=])(.*?[\'](.*?[\']))"
REPLACE="\\1\\2 \'$API_URI\'"
perl -pi -e "s/${FIND}/${REPLACE}/" file.ext
答案1
如果您愿意,请务必使用 Perl,但是这个 sed 不就可以解决问题吗?
echo "$API_URI" | sed 's/\//\\\//g'
http:\/\/something\/api
或者...直接使用 Bash:
echo "${API_URI//\//\\/}"
http:\/\/something\/api