IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Utilisation de sed avec les variables dans un Shell


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 1
    Points : 1
    Points
    1
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  3. #3
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    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.

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/09/2009, 12h08
  2. [PHP-JS] probleme avec les variable dans javascript
    Par aminobobo dans le forum Langage
    Réponses: 3
    Dernier message: 22/07/2008, 13h02
  3. Utilisation de sed avec une variable
    Par Neuromancien2 dans le forum Linux
    Réponses: 5
    Dernier message: 18/07/2008, 18h53
  4. Utiliser les variables dans un lot DTS
    Par miniquick dans le forum Développement
    Réponses: 1
    Dernier message: 03/06/2008, 14h04
  5. [C++] Pb avec les variable static dans les classe
    Par quantik-revolution dans le forum C++
    Réponses: 3
    Dernier message: 03/03/2006, 19h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo