如何在 bash 中反斜杠动态字符串

如何在 bash 中反斜杠动态字符串

我想自动反斜杠变量,以便最终用户不需要键入反斜杠来替换 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

相关内容