Suppression des commentaires xml dans un fichier

Résolu
paradox& -  
 leferison -
salut les unixien;
je fais un probleme que je veux partager avec vous en fait j ai un fichier xml contenant des commentaire
le fichier se presente ainsi

info
<!-- commentaire1 -->
info
<!-- commentaire 2
commentaire 3
-->
info
j ai besoin de supprimer tous les commentaires.
j ai utilisé sed '/<!--/d' fichier .. le premier commentaire est supprimé mais pas le 3em
et j ai procédé aussi sed '/<!--/,/ -->/d' le résultat retourné aussi est erroné
merci pour votre aide

1 réponse

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    $ cat plop 
    <!-- commentaire1 -->
    info1
    <!-- commentaire 2
    commentaire 3
    -->
    info2
    <!-- commentaire3 -->
    info3
    <!-- commentaire 4
    commentaire 5
    commentaire 6
    -->
    info4
    
    $ sed '/^</{/>$/d;:z;N;/>$/!bz;d}' plop 
    info1
    info2
    info3
    info4
    
    $ 

    1
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Ou plus simple :

      sed '/^<!.*>$/d;/^<!/,/>$/d' plop
      0
    2. paradox&amp;
       
      merci pour la reponse :)
      si l information utile se termine par > ca pose un probleme je pense
      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Oui ;-(

      Dans ce cas rajouter les tirets :
      sed '/^<!--.*-->$/d;/^<--!/,/-->$/d'
      0
    4. paradox&amp;
       
      parfaitt :) ))
      0
    5. leferison
       
      Salut petit erreur dans la 2eme partie de ton sed <--! en fait c'est <!--
      Puis pas la peine de mettre ^ ou $ car les commentaire sont bien définie là et pas forcement au debut de ligne et/ou un espace apres la fin ;)

      sed '/<!--.*-->/d;/<!--/,/-->/d' fichier.xml



       *-+=LeFeRiSoN=+-*
      0