Commande sed

Résolu
simo -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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
  • 2
  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
     sed '/<b>/{n;s/name/nom/}'
    ;-))
    0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    T'es sûr ?
    jp@MDK:~/tmpfs ssh$ cat plop
    <a>
    <name = toto>
    <b>
    <name = titi>
    
    jp@MDK:~/tmpfs ssh$ sed '/<b>/{n;s/name/nom/}' plop
    <a>
    <name = toto>
    <b>
    <nom = titi>
    
    jp@MDK:~/tmpfs ssh$
    ;-))
    0
  3. simo
     
    ça ne marche pas avec korn shell sous aix?!!
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    T'as pas un message d'erreur ?
    0
  6. simo
     
    Analyse syntaxique de la fonction /<b>/{n;s/name/nom/} impossible.
    0
  7. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Essaies sans les chevrons :
    sed '/b/{n;s/name/nom/}'
    ou en les protégeant :
    sed '/\<b\>/{n;s/name/nom/}'
    ;-)
    0
  8. simo
     
    le problème persiste, je crois que c le {n qui lui pose problème :(
    0
  9. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Essaye avec "N" alors :
    sed '/b/{N;s/name/nom/}'
    0
  10. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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.
    0
  11. simo
     
    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 :)
    0
  12. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    la bonne nouvelle, c'est que je suis arrivé à le faire autrement
    Ben c'est le principal ;-))
    0
  13. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    De rien, mais j'ai pas fait grand chose sur ce coup là ;-))
    0
  14. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Loin s'en faut ;-)
    0
  15. simo
     
    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 ;)
    0
  16. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    ;-))

    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 ;-)
    0
  17. simo
     
    erreur :

    ksh: 0403-057 Erreur de syntaxe.: `<' imprévu.
    0
  • 1
  • 2