エンドユーザーが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