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 et selection de motifs


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 47
    Points : 12
    Points
    12
    Par défaut grep et selection de motifs
    Bonjour à vous,

    Débutant en bash je me permets de solliciter votre aide.
    J'ai un gros fichier dans lequel je veux extraire des motifs particulier avec comme points communs qu'ils commencent tous par # et se termine par une virgule:

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #HV9a1a)#HV9a1,JQ705368,EU545422)#HV9a,ct204,JQ703720,EF222253,EU545420,LK08)#HV9+152,((EF222233,KM272200)#HV9b+13651,JQ704799,FJ147309)#HV9b,JQ703367,JQ703202,HM852859,(KC911421),#V+154+H45,#N1a
    je suis partie avec grep et les Regex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -o '#'[A-Z]*[0-9]* fichier
    Néanmoins il y a beaucoup de possibilités quant aux motifs à extraire (alternance de chiffres, de lettres de +) et je ne sais pas comment inclure toutes ces possibilités pour être certain d'extraire toutes les variantes de mes motifs?

    Merci beaucoup pour votre aide.

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut
    Salut, que penses tu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo '#HV9a1a)#HV9a1,JQ705368,EU545422)#HV9a,ct204,JQ703720,EF222253,EU545420,LK08)#HV9+152,((EF222233,KM272200)#HV9b+13651,JQ704799,FJ147309)#HV9b,JQ703367,JQ703202,HM852859,(KC911421),#V+154+H45,#N1a' \
       | egrep -o "#[^,]*"
    ?
    Sous Kubuntu 20.04

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 47
    Points : 12
    Points
    12
    Par défaut
    Canon merci beaucoup. C'est difficile quand tu débute, il y a tellement de façon de faire que tu peux vite être un peu perdu et faire les mauvais choix.
    Encore merci a +

  4. #4
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    juste pour info et la frime :
    Citation Envoyé par hizoka Voir le message
    egrep est la même chose que grep -E (cf. la manpage), on pourrait donc écrire grep -Eo "#[^,]+" (avec un + au lieu de *, plus cohérent)

    une autre façon de procéder pouvait consister à utiliser un positive lookahead, disponible avec les regex Perl grep -Po "#.+?(?=,)"

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 47
    Points : 12
    Points
    12
    Par défaut
    Intéressant c'est différente combinaison, ça me fait penser au goufre qui me reste à combler.

    Petite dernière question j'ai testé ta première commande avec l'option -v pour sélectionner tout sauf ces motifs mais ça ne semble pas marcher, j'imagine que je n'ai pas bien compris cette option!

    Merci pour ton aide c'est sympa

  6. #6
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Citation Envoyé par Piotree Voir le message
    Petite dernière question j'ai testé ta première commande avec l'option -v pour sélectionner tout sauf ces motifs mais ça ne semble pas marcher, j'imagine que je n'ai pas bien compris cette option!
    grep travaille ligne par ligne, l'option -v vire donc toute la ligne

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

Discussions similaires

  1. [grep] Motif contenu dans d'autres mots
    Par malik0 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 04/03/2013, 15h35
  2. grep motif ET motif
    Par blancheln dans le forum Shell et commandes GNU
    Réponses: 22
    Dernier message: 01/11/2012, 18h44
  3. grep ne contenant pas un motif
    Par danathane dans le forum Linux
    Réponses: 3
    Dernier message: 24/01/2011, 17h35
  4. Trouver la ligne du dernier motif d'un grep
    Par Erlen dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 08/12/2010, 22h11
  5. [grep fichier word]recuperer lignes tableau motif
    Par fantomas261 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 15/09/2007, 13h09

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