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
Partager