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 :

Extraire plusieurs termes dans un fichier


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Par défaut Extraire plusieurs termes dans un fichier
    Bonjour,
    J'ai fichier qui contient des balises de ce genre:

    <Location /toto/ >
    xxxx
    xxx
    xx
    </Location>
    Je veux extraire tous les mots comme /toto/ dans un tableau.

    Merci pour votre aide

  2. #2
    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
    En général, ce n'est pas une très bonne idée d'utiliser une discussion résolue pour poser une nouvelle question: mieux vaut ouvrir un nouveau fil de discussion.

    En général, il vaut mieux mettre le code ET les données dans des balises CODE (signe # dans la barre d'outils à droite).

    En général, il vaut mieux:
    - soit donner des spécifications précises
    - soit donner un exemple plus consistant qui permet de se faire une idée des différences et ressemblances à traiter.

    En général, il vaut mieux donner un exemple précis de ce que l'on attend.

    Si toutes les balises sont 'Location', alors:
    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
    $ cat plop                                                        
    <Location /toto/ >
    xxxx
    xxx
    xx
    </Location>
    <Location /titi/ >
    xxxx
    xxx
    xx
    </Location>
    $ T=$(fgrep '<Location' plop | sed -e 's:[^/]*\(/[^/]*/\).*:\1:') 
    $ echo "$T"                                                       
    /toto/
    /titi/

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    @jack-ft : t'as pas vu un poil trop tordu là ?

    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
    $ cat plop 
    <Location /toto/ >
    xxxx
    xxx
    xx
    </Location>
    <Location /titi/ >
    xxxx
    xxx
    xx
    </Location>
     
    $ grep -o '/[^/]*/' plop 
    /toto/
    /titi/
     
    $

  4. #4
    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 zipe31 Voir le message
    Salut,

    @jack-ft : t'as pas vu un poil trop tordu là ?
    Ouais... C 'est pas faux...

    Toutefois et cependant, nous n'avons pas tout à fait les mêmes spécifications:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $ cat plop
    <Location /toto/ >
    xxx
    xx
    </Location>
    <Location /titi/ >
    xxx
    xx
    </Location>
    <balise_a_sauter /mot a sauter/ /balise_a_sauter>
    $ grep -o '/[^/]*/' plop
    /toto/
    /titi/
    /mot a sauter/


    ni forcément les mêmes contraintes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    -bash-4.0$  grep -o '/[^/]*/' plop
    grep: Not a recognized flag: o
    Usage: grep [-r] [-R] [-H] [-L] [-E|-F] [-c|-l|-q] [-insvxbhwyu] [-p[parasep]] -e pattern_list...
            [-f pattern_file...] [file...]
    Usage: grep [-r] [-R] [-H] [-L]  [-E|-F] [-c|-l|-q] [-insvxbhwyu] [-p[parasep]] [-e pattern_list...]
            -f pattern_file... [file...]
    Usage: grep [-r] [-R] [-H] [-L] [-E|-F] [-c|-l|-q] [-insvxbhwyu] [-p[parasep]] pattern_list [file...]
    Sachez, Môssieur, que vous n'êtes PAS sur un forum linux...
    Mais vous y êtes quand même le bienvenu

    Oops! J'ai confondu avec "Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix"

    À cause de cette !?#@ portabilité (linux AIX HPUX Solaris), je me méfie de toutes les options (genre grep -w ou -o)!

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Citation Envoyé par jack-ft Voir le message
    Ouais... C 'est pas faux...

    Toutefois et cependant, nous n'avons pas tout à fait les mêmes spécifications:
    T'as pas tort, mais comme toujours, vu qu'il n'y a pas plus de détails, je réponds à la question sans me soucier des contraintes inconnues, sachant qu'elles ne devraient pas tarder à arriver si toutefois la réponse n'était pas adaptée

    Citation Envoyé par jack-ft Voir le message
    Oops! J'ai confondu avec "Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix"
    Y'a pô d'lézard

    Citation Envoyé par jack-ft Voir le message
    À cause de cette !?#@ portabilité (linux AIX HPUX Solaris), je me méfie de toutes les options (genre grep -w ou -o)!
    Tu fais bien car il est vrai qu'elles nous mènent la vie dure

Discussions similaires

  1. grep extraire plusieurs termes en comparant plusieurs fichiers entre eux
    Par sab113 dans le forum Shell et commandes GNU
    Réponses: 14
    Dernier message: 07/03/2012, 19h03
  2. grep commande shell extraire plusieurs termes dans un fichier
    Par sab113 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 01/03/2012, 20h11
  3. Recherche plusieurs termes dans un fichier
    Par Kaoziun dans le forum Linux
    Réponses: 2
    Dernier message: 03/10/2006, 15h02
  4. 1 SOLUTION : plusieurs anim dans un fichier x
    Par heidi79 dans le forum DirectX
    Réponses: 1
    Dernier message: 28/08/2003, 09h19
  5. Plusieurs animations dans un fichier .X
    Par heidi79 dans le forum DirectX
    Réponses: 6
    Dernier message: 25/08/2003, 02h26

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