최종 사용자가 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