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

Shell et commandes GNU Discussion :

Récupération de lignes entre 2 motifs


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 14
    Par défaut Récupération de lignes entre 2 motifs
    Bonjour,

    Voici mon problème : je souhaite récupérer un certain nombre de ligne d'un fichier qui sont englobé entre 2 motifs. Ex de fichier :
    <toto>
    32
    56
    </toto>
    tata
    tutu
    <toto>
    689
    3279
    </toto>

    J'ai essayé de trouvé une option avec les fonctions sed et grep, mais je n'y arrive pas. Ce que je voudrais, c'est récupérer les valeur entre <toto> et </toto>.

    Merci de votre aide

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    commence par comprendre le pipage de commandes par exemple pour eliminer les separateurs (sans tri) :
    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
    19
    20
    21
    22
    23
    24
    25
    TEST-FRSP:~ # cd /tmp
    TEST-FRSP:/tmp # cat > toto
    <toto>
     32
     56
     </toto>
     tata
     tutu
     <toto>
     689
     3279
     </toto>
    TEST-FRSP:/tmp # cat toto | cut -d">" -f2 | cut -d"<" -f1
     
     32
     56
     
     tata
     tutu
     
     689
     3279
     
    TEST-FRSP:/tmp # rm toto
    TEST-FRSP:/tmp #
    maintenant a toi d'adapter a ton cas : en triant que ce qui est entre <toto> et </toto>

  3. #3
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Je ne suis pas sûr que ce soit la bonne façon de faire. sed te permet justement d'identifier des lignes entre des delimiteurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/<toto>/,/<\/toto>/ p' fichier
    Le pb avec ça c'est que les balises sont toujours là, donc il faut les virer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/<toto>/,/<\/toto>/ p' fichier | grep -vxe "<toto>" -e "</toto>"

Discussions similaires

  1. [Batch] Récupération des lignes entre 2 expressions d'un fichier texte
    Par tonf dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 17/06/2011, 20h16
  2. Empêcher le retour á la ligne entre des balises <Hx> e
    Par thomas_chamas dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 29/11/2004, 16h39
  3. [C#] Récupération de données entre 2 WinForm
    Par debug dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/09/2004, 16h19
  4. [Eclipse 3][Format Source] Sauts de ligne entre attributs
    Par sylvain_2020 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 25/08/2004, 16h04
  5. [PointBase][Probleme] Récupération de ligne
    Par cibouseb dans le forum Autres SGBD
    Réponses: 7
    Dernier message: 28/07/2003, 14h51

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