Pb avec awk pour modifier une chaîne text

Résolu
Bonjour,

Voici mon probleme j'ai un fichier texte, ce fichier text doit être incrémenter d'une variable. En me lisant je me rend compte que c'est pas claire alors voila ce que sa donne

mon fichier text :
define {
name srv-lin
members localhost
}

le but et d'avoir un script qui utilise awk pour ajouter un nom à la suite de localhost, ce nom est compris dans une variable appeler $name

apres le traitement par le scripte le fichier doit etre ainsi:
mon fichier text apres script

define {
name srv-lin
members localhost,machine1
}

merci d'avance

2 réponses

  1. Modérateur
    Salut,

    Je te propose de faire ça avec "sed" plutôt qu'avec "awk" :
    jp@MDK:~/tmpfs ssh$ cat fichier.txt
    define {
    name srv-lin
    members localhost
    }
    
    jp@MDK:~/tmpfs ssh$ var="machine1"
    
    jp@MDK:~/tmpfs ssh$ echo $var
    machine1
    
    jp@MDK:~/tmpfs ssh$ sed "/localhost/ s/$/,$var/" fichier.txt
    define {
    name srv-lin
    members localhost,machine1
    }
    
    jp@MDK:~/tmpfs ssh$ sed -i.bak "/localhost/ s/$/,$var/" fichier.txt
    
    jp@MDK:~/tmpfs ssh$ cat fichier.txt
    define {
    name srv-lin
    members localhost,machine1
    }
    
    jp@MDK:~/tmpfs ssh$
    ;-))
    1. merci pour ta reponse
      effectivement avec sed sa marche, cependant pour le mettre dans un script je doit utiliser l'option -e
      pour etre plus précis dans ce que j'essaye de faire je te montre mon script qui doit modifier le fichier.txt

      mon script.sh
      modif=`cat fichier.txt | grep $1 | cut -d " " -f18` #$1 et une variable envoyer dans le script par une page php et qui
      corespond a localhost

      modif2=machine1
      #avec le sed l'ajoute ,$modif2 derriere 'members localhost' de mon fichier.txt
      cependant je n'arrive pas à trouver la bonne syntaxe et le man de sed et archi long

      encore merci
    2. en fait j'ai trouver comment passer le sed dans mon script

      sed -i fichier.txt -e "s/localhost/machine1" fichier.txt

      maintenant si tu pouvait juste me dire comment je pourrais remplacer localhost et machine1 par des variable de mon script

      merci en tous cas pour ton aide