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

おすすめ記事