IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Récupérer une partie de fichier (sed ou awk ?)


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 34
    Par défaut Récupérer une partie de fichier (sed ou awk ?)
    Bonjour,

    J'ai un fichier xml sous le format suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?xml version="1.0" encoding="UTF-8"?>
    <body>
     <hawk_exceptions>
      <hawk_exception>
       <hawk_exception_id>HA27</hawk_exception_id>
       <hawk_exception_desc><ligne1
     
    ligne2
    ligne3
     
    ligne5
    ligne6
     
    ></hawk_exception_desc>
      </hawk_exception>
     </hawk_exceptions>
    </body>
    Et j'aimerai récupére le texte compris dans la balise <hawk_exception_desc>
    Avant ce texte ne faisait qu'une seule ligne (<hawk_exception_desc><ligne1><hawk_exception_desc>) donc avec un simple grep je le récuperais.

    Maintenant sur plusiseurs lignes c'est moins évident. J'ai essayé le sed ou le awk mais pas moyen de trouver le bon pattern pour récuperer ce texte.
    Le nombre de ligne avant, dedans et après la balise n'étant pas fixe.

    Je ne veux pas faire un parser xml, je souhaite juste une commande shell d'une ligne, c'est la seule information que j'ai besoin de ce xml.

    Merci.

  2. #2
    Membre chevronné Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Par défaut essaie ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sed -n '/<hawk_exception_desc>/,/<hawk_exception_desc>/p' fichier.xml

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Citation Envoyé par CanardJM Voir le message
    Avant ce texte ne faisait qu'une seule ligne (<hawk_exception_desc><ligne1><hawk_exception_desc>) donc avec un simple grep je le récuperais.

    Maintenant sur plusiseurs lignes c'est moins évident.
    Bien que la solution donnée soit excellente, je me permets d'ajouter mon grain de sel:
    permet de remettre le fichier sur une seule ligne.

    HTH (pour d'autres cas...)

    )jack(

Discussions similaires

  1. Récupérer une partie d'un fichier .log
    Par irouni dans le forum Langage
    Réponses: 5
    Dernier message: 20/02/2008, 13h52
  2. Réponses: 4
    Dernier message: 27/09/2007, 15h05
  3. [XSL] Récupérer une partie d'un fichier XML
    Par DoDoP dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 24/04/2007, 18h40
  4. [VBA]Récupérer une partie du chemin d'un fichier
    Par poivre dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/04/2007, 19h34
  5. [DOM] Récupérer une partie d’un fichier HTML
    Par fadex dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 05/01/2007, 12h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo