Commande SED avec variable

Résolu/Fermé
Doble - 25 févr. 2020 à 11:05
 Doble - 25 févr. 2020 à 11:39
Bonjour à tous,

J'ai un petit soucis pour ma commande sed.

J'ai une boucle dans laquelle j'effectue un sed, par exemple :
 
for I in A B C D E ; do
   sed 's/$I/WWW/' text.txt
done


Je vous expose ceci, car je n'arrive pas à trouver le moyen de subtiliser la variable $I à sa valeur propre (A B C D ou E).

Est ce que vous pouvez m'aider ?

Bonne journée à vous tous

Doble

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
25 févr. 2020 à 11:09
Salut,

Les variables ne sont jamais interprétées quand elles sont entourées par des quotes simples ;-(

Il faut les entourer de quotes doubles. Et tant qu'à faire écrire ses variables en les entourant d'accolades (
"${I}"
).

sed "s/${I}/WWW/" text.txt

ou sortir des quotes simples :
sed 's/'"${I}"'/WWW/' text.txt

1
J'ai bien effectué la commande avec des guillemets double mais ça n'avais fonctionné...
Encore un mystère de la machine !

En tout cas je te remercie beaucoup !

Bonne journée à toi
0