Utilisation de la commande sed

Bonjour,
je voudrais utiliser la commande sed pour rajouter une chaine de caractère à la fin d'une ligne dans un de mes fichier.

ex:
secretaire:x:1000:toto, titi, tutu
toto:x:2000:dam, bill
titi:x:3000:dagoba
prod:x:4000:earth

je voudrais rajouter à la fin d'une ligne un autre nom avec un point virgule pour le séparer.
mais je n'arrive pas a utiliser la commande sed, donc si quelqu'un pouvait me dépanner ca serait cool merci d'avance!

4 réponses

  1. Modérateur
    Salut,
    $ cat plop
    secretaire:x:1000:toto, titi, tutu
    toto:x:2000:dam, bill
    titi:x:3000:dagoba
    prod:x:4000:earth
    
    $ sed '/titi/ s/.*/&;doberman91/' plop
    
    secretaire:x:1000:toto, titi, tutu;doberman91
    toto:x:2000:dam, bill
    titi:x:3000:dagoba;doberman91
    prod:x:4000:earth
    Rajoute l'option "-i.bak" pour faire une sauvegarde de ton fichier original et faire en sorte que les modifications soient effectuées sur le fichier original...
    sed -i.bak '/titi/ s/.*/&;doberman91/' plop
    ;-))
    0
    1. merci beaucoup, j'avou que je ne savasi vraiment pas comment faire!!

      j'aurais une autre question, peut être pourras tu y repondre, je crée mon script pour créé un utilisateur.(je ne dois pas utiliser user add)

      masi j'ai un problème pour donne rl'UID à l'utilisateur. Monscript va marcher, masi si on me supprime une ligne, alors l'UID supprimer ne sera pas réutilisé.
      Si tu pouvasi m'éclaircir sur la voie a prendre , ca serait génial.

      voici mon code actuel pour l'affectation de l'UID.

      echo `grep -w $groupe /etc/NIS/passwd | cut -d: -f 3| sort -g >> tmp`
      n=`cat tmp | wc -l`
      ligne=`cat tmp`

      nb_place=`expr 1000 - $n`
      echo "il te reste $nb_place dans le groupe $groupe"
      UserId=$groupID
      for i in $ligne
      do
      if [ $i -gt $UserId ];
      then
      UserId=$i
      echo $UserId
      fi
      if [ $UserId -gt $fin ];
      then
      echo "YOU LOSE"
      exit 0
      fi
      done

      UserId=`expr $UserId + 1`
      echo "Le user Id utilise sera $UserId"

      voila. mais si l'on supprime, l'UID ne sera plus utilisé car moi je prend l'UDI le plus grand de mon fichier password poru ceux qui font partie de tel group.
      $group nom du groupe auquel il appartient et $groupID c'est le GID, je considere que mon UID est entre le GID et GID +1000

      merci d'avance
      0
      1. la commande ne fonctionne pas... il me dit

        sed: -e expression n°1, caractère 30: option inconnue pour `s'
        0
        1. Modérateur
          Tu peux afficher la commande que tu as tapée ?
          0