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 deux mots sur la même ligne


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 96
    Par défaut Grep deux mots sur la même ligne
    Bonjour,

    j'ai un fichier qui ressemble à ca

    michel 4584 47878 1257
    dupont 1257 7851 5484
    jean 5000 5487 120000
    luc 89275 12000 5000
    Je voudrais récupérer toutes les lignes qui contiennent deux motifs spécifiques, par exemple 12000 et 5000.

    ->

    jean 5000 5487 120000
    luc 89275 12000 5000
    Pourriez vous m'aider s'il vous plaît ?

    Merci à vous

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 96
    Par défaut
    J'ai réussi en passant par awk, mais si quelqu'un à une solution avec grep je prends pour ma culture


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '/5000/&&/12000/' fichier

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fgrep 5000 | fgrep 12000
    ou bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fgrep 12000 | fgrep 5000
    ou bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    egrep '(5000.*12000|12000.*5000)'
    Remarque:

    Citation Envoyé par RTK45 Voir le message
    Je voudrais récupérer toutes les lignes qui contiennent deux motifs spécifiques, par exemple 12000 et 5000.
    D'après tes spécifications, je ne saurais pas dire avec certitude si une telle ligne doit être acceptée ou rejetée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jean 15000 5487 120000000
    Stricto sensu, elle contient bien les motifs 12000 et 5000...

    La solution awk que tu préconises semble abonder dans le sens d'une acceptation (à moins que ce ne soit un bug ou un oubli (ce dont je doute (a priori)))...

    Oui, je sais: je chipote...

    Pour rejeter la ligne, tu peux utiliser (sous réserve que ton grep l'accepte):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fgrep -w 5000 | fgrep -w 12000

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

Discussions similaires

  1. Positions de deux div sur la même ligne
    Par kabkab dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 18/06/2008, 16h19
  2. Comment disposer deux formulaires sur la même ligne ??
    Par soad029 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 05/05/2007, 04h14
  3. Comment positionner deux blocs sur la même ligne
    Par yaya0057 dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 27/02/2007, 16h42
  4. Réponses: 6
    Dernier message: 28/09/2005, 10h24

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