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 :

Script shell et sed


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 175
    Par défaut Script shell et sed
    Mesdames, Messieurs,
    Bonjour,

    Je me permets de faire appel à vos lumières étant complètement coincé. Dans le cadre d'un projet, j'ai besoin d'ajouter dans le fichier /etc/hosts mon HOSTNAME.
    Actuellement, j'ai le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/bash
     
    ...
     
    # Setting /etc/hosts file
    sed -i -e "s/\(127.0.0.1\)\([ \t]*\)\(.*\)/\1\2$HOSTNAME \3/g" /etc/hosts
    Le problème avec cette ligne, c'est que je vais ajouter mon HOSTNAME N fois (où N correspond à mon nombre d'interface réseau).
    Je sais qu'il est possible de matcher des patterns ne contenant pas une chaine devant ressembler à qqch du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i -e "s/\(127.0.0.1\)\([ \t]*\)^\(\?\:\(\?\!$HOSTNAME\).\)*/\1\$HOSTNAME \3/g" /etc/hosts
    mais vous vous doutez bien que ça ne marche pas du tout...

    Si quelqu'un a une idée...
    D'avance merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i -e "/${HOSTNAME}/! {s/\(127.0.0.1\)\([ \t]*\)\(.*\)/\1\2${HOSTNAME} \3/}" /etc/hosts
    Devrait faire l'affaire

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 175
    Par défaut
    Désolé de ne revenir que maintenant mais infiniment pour la réponse et la solution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Shell scripting] Question sur sed et regex
    Par Antheadousa dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 29/05/2014, 10h37
  2. script shell avec sed
    Par zorooo dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 15/12/2009, 13h00
  3. script shell avec sed
    Par Eye4eye dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 13/10/2008, 21h26
  4. Réponses: 3
    Dernier message: 11/09/2007, 17h58
  5. script shell : probleme avec sed et awk
    Par salseropom dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 05/06/2007, 11h57

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