Problème avec Ed

Résolu
Bonjour,

J'utilise ed depuis peu et j'ai des petits problèmes pour finir une commande qui se présente comme suit :
ed fichier 1s/avant/apres

Lorsque je l'exécute, le programme attend que j'ajoute w pour écrire et q pour quitter. Y a t il un moyen de tout faire d'un seul coup ?

Merci,
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. Modérateur
    Salut,
    jp@MDK:~/tmpfs ssh$ cat plop
    a
    a b c
    b c
    d
    b e
    f
    
    jp@MDK:~/tmpfs ssh$ ed -s plop <<< $'2s/b/B/\nw'
    jp@MDK:~/tmpfs ssh$ cat plop
    a
    a B c
    b c
    d
    b e
    f
    
    jp@MDK:~/tmpfs ssh$
    ;-))
    1. T'es sur ?
      J'ai déjà vu cette solution ailleurs sur le forum et ça ne marchait pas.
      Les 3 chevrons me paraissaient bizzares et j'ai le message syntax error: `<' unexpected.
    2. Modérateur
      @seyar666T'es sur ?
      Ben la preuve que ça marche, non ?

      Sinon essaie comme ça :
      jp@MDK:~/tmpfs ssh$ ed plop <<EOF
      > 3 s/c/C/
      > w
      > EOF
      21
      21
      jp@MDK:~/tmpfs ssh$ cat plop
      a
      a B c
      b C
      d
      b e
      f
      
      jp@MDK:~/tmpfs ssh$
      ;-))
    3. @jipicyCa marche en ligne de commande seul mais dès que je l'inclus dans un fichier ça passe plus.
      Est ce que le fait d'être en ksh ça peut changer qqc ?
    4. Modérateur
      @seyar666T'es obligé de faire avec "ed" ?
      Tu veux pas faire ça avec "sed" ?
    5. @jipicyJ'ai commencé avec sed mais le pb c'est que je peux pas faire ma substitution dans un fichier et renvoyer le résultat sur le même fichier. Il faut passer par un fichier temporaire et du coup, je perd en performance.