Bonjour à tous, alors voilà mon problème j'ai créé une fonction qui me permet de modifier une ligne d'un fichier avec en paramètre le nom du fichier à traiter et une chaine de caractère qui va remplacer une partie de ma ligne


sed "/^DEBUT_LIGNE/s/TOTO .*$/TOTO $CHAINE/" $MON_FICHIER

Donc pour un fichier exemple comme ça:

erere rereproepr reopropero kreokroekrepokr ekroep
rkoekr ekroekpr keropekr krpokerpoekrp kerpo
eorkeporkeropekrpoTOTO chaine à remplacer
efeflepf efpelf lfpelfpefl epf

J'ai bien:

erere rereproepr reopropero kreokroekrepokr ekroep
rkoekr ekroekpr keropekr krpokerpoekrp kerpo
eorkeporkeropekrpoTOTO $CHAINE
efeflepf efpelf lfpelfpefl epf

Le problème c'est que si dans ma variable $CHAINE j'ai par exemple "toto/tata" il va me balancer une erreur parce qu'il interprète le caractère /

J'ai essayé en remplaçant "/" par "\/" mais ça ne marche pas sauf si je le met en brute dans le sed, mais vu que je passe par une variable c'est pas bon

J'ai essayé en remplaçant "/" par son code ASCII : "\x2F" mais sed l'interprete comme ça : "x2F"

Je suis a cours d'idée, donc si vous avez déjà eu une problème comme ça, ça m'intéresse

Merci