Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/07/2007, 11h18   #1
Invité de passage
 
Inscription : juillet 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 1
Points : 0
Points : 0
Par défaut Utilisation de sed avec les variables dans un Shell

Bonjour !

Je voudrais créer un script qui remplace efficacement le nom d'une station Solaris (étant donné qu'il faut parcourir 5 à 6 fichiers pour que la procédure marche). Alors, j'ai voulu avoir recours à la commande sed.

Le problème est que, à la CLI, sed marche très bien lorsque je fais :
Code :
sed 's/anciennom/nouveaunom/g;w fichtamp' /etc/hosts
Bine évidamment, il suffit de faire cp fichtamp /etc/hosts pour que le tour soit joué.

C'est donc cette procédure que j'ai voulu automatisé dans un script, et lorsque j'intègre la commande :

Code :
sed 's/$OLDNAME/$NEWNAME/g:w fichtamp' /etc/hosts
,
il ne se produit rien du tout, sachant que $OLDNAME et $NEWNAME contiennent effectivement des informations.

Pouvez-vous donc m'expliquer comment utiliser les variables avec sed dans un shell ?

Merci
mbole est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2007, 11h47   #2
Modérateur
 
Avatar de ggnore
 
Inscription : juillet 2004
Messages : 2 246
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2004
Messages : 2 246
Points : 1 903
Points : 1 903
Code :
1
2
3
4
user@info1:~ $ var1=bla
user@info1:~ $ var2=aze
user@info1:~ $ echo "blabla" | sed "s/$var1/$var2/g"
azeaze
Je crois que les guillemets ont leur importance.
Tu devrais préférer les double quote si tu veux que les variables soient interprétées.
__________________
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2007, 17h46   #3
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 497
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 497
Points : 9 675
Points : 9 675
Bonjour,

Citation:
Envoyé par ggnore
Je crois que les guillemets ont leur importance.
Tu devrais préférer les double quote si tu veux que les variables soient interprétées.
Je confirme ce point : des simples guillemets impliquent une non-interprétation des variables, là où des doubles guillemets forcent leur interprétation.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h10.


 
 
 
 
Partenaires

Hébergement Web