Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/03/2012, à 23:32

arieugon

[RESOLU] sed : substitution avec des variables ne fonctionne pas

Bonjour à tous

Dans un script je veux substituer une valeur par une autre dans un fichier. Chacune est contenue dans une variable respective. Le problème est qu'elle ne sont pas substituées par la commande sed.
exemple:

#!/bin/bash
chaineA=AAA
chaineB=BBB

sed 's/$chaineA/$chaineB/g' fichier # les variables ne sont pas substituées par leur valeur.

Il cherche à remplacer la chaîne '$chaineA' par '$chaineB au lieu de 'AAA' par 'BBB'.

Merci de votre aide:)

Dernière modification par arieugon (Le 18/03/2012, à 13:17)


Portable ASUS K73E :  Ubuntu XFCE 20.04 / Ubuntu DDE 20.04 / Debian 10 /Debian 11 (testing) / Devuan 3
Le tout en multi-boot Grub Legacy.

Hors ligne

#2 Le 17/03/2012, à 23:37

sputnick

Re : [RESOLU] sed : substitution avec des variables ne fonctionne pas

Normal, c'est le ba-ba du shell, entre des simples quotes, les variables ne sont pas interpollées.

sed "s/$var1/$var2/"

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#3 Le 18/03/2012, à 01:49

Bousky

Re : [RESOLU] sed : substitution avec des variables ne fonctionne pas

sputnick a écrit :
sed "s/$var1/$var2/"

Il y a un autre problème avec cette écriture : si l'une des deux variables contient « / », sed va renvoyer une erreur. Si l'une des deux variables risque de contenir « / », il faut choisir un autre délimiteur dont tu es sûr qu'il ne soit pas présent dans les variables (j'utilise généralement « | » avec les fichiers : sed "s|…|…|").

Dernière modification par Bousky (Le 18/03/2012, à 01:49)


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#4 Le 18/03/2012, à 13:17

arieugon

Re : [RESOLU] sed : substitution avec des variables ne fonctionne pas

Ok merci à vous deux. Je pensais que les simples cotes étaient obligatoires. Ça fonctionne. J'étais étonné que sed ne puisse pas accepter de variables !!! Merci encore.

Linuxement smile


Portable ASUS K73E :  Ubuntu XFCE 20.04 / Ubuntu DDE 20.04 / Debian 10 /Debian 11 (testing) / Devuan 3
Le tout en multi-boot Grub Legacy.

Hors ligne