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 :

grep commande shell extraire plusieurs termes dans un fichier


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 86
    Points
    86
    Par défaut grep commande shell extraire plusieurs termes dans un fichier
    Bonsoir à tous,

    d'après ce que j'ai lu sur le filtre grep il permet de rechercher les lignes contenant un ou plusieurs motifs exemple:
    grep -iwf listeMots.txt fichier.txt m'affichera les lignes contenant ma liste de mots recherché. Sous shell je peux voir les termes qui apparaissent dans les phrases de mon fichier par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     [The medical assays on Spheroides rubripes liver oil].
     Mercury and selenium in cod-liver oil.
    [Metabolic system of blood platelets and thrombus formation].
    The metabolism of alpha-linolenic acid by the foetal rat.
    Metabolism of cod-liver oil in relation to milk fat secretion.
     Metabolism of eicosapentaenoic acid by aorta: formation of a novel
    M Metabolism of phospholipids in the retina.
     Metabolism of radioactive 5,8,11,14,17-eicosapentaenoic acid by human platelets.
    Si j'ai un fichier de petite taille j'arrive à les récupérer facilement mais avec des fichiers de 10000 lignes sa deviens difficile d'extraire les mots qui apparaissent dans les lignes du fichier.

    Je ne peux pas utilisé awk pour récupérer tel ou tel colonne puisque ici les termes ne sont pas tous de la troisième colonne ou de la première par exemple, ils sont un peu éparpillés partout.
    Sous grep je ne vois pas vraiment comment récupérer les termes qui apparaissent seulement dans mon fichier.

    Pourriez vous m'aider svp sur ce point avec le filtre grep ou avec d'autres commandes shell.

    Merci à l'avance

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 596
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 596
    Points : 19 481
    Points
    19 481
    Par défaut
    Bonjour,

    awk ne travaille pas que sur des "tableaux", il peut travailler sur des lignes entières (ce qui correspond à $0).

    regarde ceci, ça peut t'inspirer. Dans ton cas, il faut faire l'inverse.

  3. #3
    Expert éminent

    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
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,

    Peut-être ai-je mal compris ta demande, mais un simple grep -o ne ferait-il pas l'affaire ?

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    $ cat plop
     [The medical assays on Spheroides rubripes liver oil].
     Mercury and selenium in cod-liver oil.
    [Metabolic system of blood platelets and thrombus formation].
    The metabolism of alpha-linolenic acid by the foetal rat.
    Metabolism of cod-liver oil in relation to milk fat secretion.
     Metabolism of eicosapentaenoic acid by aorta: formation of a novel
    M Metabolism of phospholipids in the retina.
     Metabolism of radioactive 5,8,11,14,17-eicosapentaenoic acid by human platelets.
     
    $ cat liste 
    Spheroides
    system
    foetal
    rat
    Metabolism
    aorta
    phospholipids
    17-eicosapentaenoic
     
    $ grep -o -f liste plop 
    Spheroides
    system
    foetal
    rat
    Metabolism
    Metabolism
    aorta
    Metabolism
    phospholipids
    Metabolism
    17-eicosapentaenoic
     
    $

  4. #4
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 86
    Points
    86
    Par défaut
    Oui je me perds un peu avec tous les options des commandes shell et je manque de temps sinon j'ai l'habitude de tj casser ma tête pour comprendre les choses.
    Merci N_BAH et zip31 pour vos réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraire plusieurs termes dans un fichier
    Par ensienne dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 15/01/2013, 12h02
  2. 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, 20h03
  3. find + grep recherche de plusieurs mots dans des fichiers différents
    Par sakura.haruno dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 27/04/2010, 23h58
  4. commande sql sur plusieurs lignes dans un shell
    Par oguevel dans le forum DB2
    Réponses: 2
    Dernier message: 14/01/2010, 09h48
  5. Recherche plusieurs termes dans un fichier
    Par Kaoziun dans le forum Linux
    Réponses: 2
    Dernier message: 03/10/2006, 16h02

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