Échapper à un chemin pour le modèle de recherche sed

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 .