Duplication possible:
sed, foward slash entre guillemets
Dans mon script bash, j’ai une chaîne de chemin que je devrais utiliser dans le modèle sed
.
SRC_PATH="$PWD" sed "s//$SRC_PATH/g" template.sh > replaced.sh
Comment puis-je échapper à la chaîne $SRC_PATH
pour qu’elle soit acceptée en toute sécurité par sed comme remplacement littéral?
Vous n’avez pas besoin d’y échapper. Utilisez simplement un autre délimiteur:
sed "s@@$SRC_PATH@g" template.sh > replaced.sh
Mais vous devez vous assurer que SRC_PATH contient no @
(ou un autre symbole si vous le choisissez).
Utilisez s%$OLDPATH%$NEWPATH%
. Vous pouvez choisir votre délimiteur. Si %
est trop dangereux, envisagez plutôt Control-A .