Commande sed

Résolu
Bonjour,
Je veux modifier la balise name qui est juste aprés la balise <b>

fichier en entée :
<a>
<name = toto>
<b>
<name = titi>

fichier en sortie :

<a>
<name = toto>
<b>
<nom = titi>
Configuration: Windows XP
Internet Explorer 7.0

23 réponses

  1. Modérateur
    Alors essaie avec :
    echo -e "/b/ +1 s/name/nom/\n,p" | ed -s fichier
    ;-))
    1. Modérateur
      ;-))

      Tiens, tu peux essayer ça s'il te plaît (normalement "ed" doit être installé nativement) :
      ed -s fichier <<< $'/b/ +1 s/name/nom/\n,p'
      et si ça marche essaie derrière :
      ed -s fichier <<< $'/b/ +1 s/name/nom/\nw'
      Merci ;-)
      1. Non, je t'assure que tu l'es :) t'es réactif aux questions posées et c'est le genre de personne dont on a besoin au niveau des forums ;)
        1. Modérateur
          De rien, mais j'ai pas fait grand chose sur ce coup là ;-))
          1. Modérateur
            la bonne nouvelle, c'est que je suis arrivé à le faire autrement
            Ben c'est le principal ;-))
            1. Bonjour jipicy,
              non, j'essaie sur le même fichier :)
              la bonne nouvelle, c'est que je suis arrivé à le faire autrement : sed '3,4 s/name/nom/'
              Merci encore :)
              1. Modérateur
                Quelle version de "sed" ? (sed --version)

                Tu essaies sur un exemple comme celui que tu m'as donné ou sur un autre fichier ? Si c'est le cas (autre fichier) affiche moi-le ici s'il te plaît.
                1. Modérateur
                  Essaies sans les chevrons :
                  sed '/b/{n;s/name/nom/}'
                  ou en les protégeant :
                  sed '/\<b\>/{n;s/name/nom/}'
                  ;-)
                  • 1
                  • 2