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 :

Besoin d'aide avec GREP


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Octobre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Collégien
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 36
    Points : 32
    Points
    32
    Par défaut Besoin d'aide avec GREP
    Bonjour! J'ai plusieurs recherche à faire avec grep et j'aimerais avoir un petit coup de main pour 2 de ces recherches.

    1.Concevoir une expression grep qui sélectionne toutes les expressions commençant et se terminant par le même mot séparé par au plus 10 caractères comme « la vie la » dans « la vie la mort », ou « pas plus pas » dans « pas plus pas trop ».

    et

    2. Concevoir une expression grep qui ne sélectionne que les « A » de « DANS » dans un texte, et aucun autre « A ».


    Merci pour votre aide, c'est super sympa!

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Bonjour,

    par le même mot
    Tu dois utiliser ce qu'on appelle une référence arrière, dans ta regex (regular expression = expression régulière). Elle reprend les objets entre parenthèses dans l'ordre d'apparition. C'est une contre-oblique (antislash) suivi du numéro d'apparition.
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ grep -o '\(toto\)\1' <<<"tatatototototiti"
    totototo
    Concevoir une expression grep qui ne sélectionne que les « A » de « DANS » dans un texte, et aucun autre « A »
    Que veut dire sélectionner ? L'outil grep est un filtre. Si tu filtres A dans DANS, tu filtreras DANS obligatoirement. Pourquoi faire une séparation ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 273
    Points : 12 708
    Points
    12 708
    Par défaut
    Bonjour,

    Et qu' as-tu essayé de ton coté ?

    Car soit tu ne fais aucun effort en espérant que l'on fasse tes exercices à ta place, et là, je ne pense pas que cela soit constructif.
    Soit il y a un ou des concepts que tu n'as pas compris, et là oui, on pourrais t'aider de façon constructive.
    Cordialement.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Octobre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Collégien
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 36
    Points : 32
    Points
    32
    Par défaut
    Pour la question 2, j'ai seulement trouvé : grep -v "[^DANS$]" qui filtre seulement le mot DANS mais je n'arrive pas à filtrer seulement le A.
    J'ai essayé un truc comme grep -v "[^D[A]NS$]"\1 mais ça ne fonctionne pas, avez-vous une idée?

    Merci!

  5. #5
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 273
    Points : 12 708
    Points
    12 708
    Par défaut
    Voici 2 exemples pour filtrer uniquement le A dans DANS:

    La méthode standard et conseillée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ echo "DANS BAS DANS RAT" | grep -o "DANS" | grep -o "A"
    A
    A
    La méthode avec un seul grep mais ne fonctionne que sur des versions de grep supportant le moteur de regex perl (presque uniquement gnu grep):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ echo "DANS BAS DANS RAT" | grep -Po '(?<=D)A(?=NS)'
    A
    A
    Cette deuxième méthode fonctionne car le contexte de recherche avant le A est de taille fixe.
    Si tu veux plus d'informations sur ce type de notion, il suffit de faire une petite recherche sur le net avec les mots clé lookbehind et lookahead.
    Cordialement.

  6. #6
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Oui mais nous n'avions qu'une ligne. Et là, on en obtient 2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo "DANS BAS DANS RAT" |sed 's/DANS/\n/g;s/[^\n]//g;s/\n/A /g;'
    A A
    ou plus marrant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo "DANS BAS DANS RAT" |sed 's/DANS/\n/g;s/[^\n]/ /g;s/\n/ A  /g;'
     A        A
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    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 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par lsebe2 Voir le message
    Pour la question 2, j'ai seulement trouvé : grep -v "[^DANS$]" qui filtre seulement le mot DANS
    J'ai des doutes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo SANS | grep -v "[^DANS$]"
    SANS

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Octobre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Collégien
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 36
    Points : 32
    Points
    32
    Par défaut
    Parfait, merci à tous!

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

Discussions similaires

  1. Besoin d'aide avec GREP!
    Par lsebe2 dans le forum Utilitaires et Sécurités
    Réponses: 0
    Dernier message: 19/02/2015, 19h47
  2. Besoin d'aide avec Regexp::Assemble
    Par mobscene dans le forum Modules
    Réponses: 5
    Dernier message: 11/04/2007, 12h39
  3. [ASA] J'ai besoin d'aide avec sybase et vb6 svp !!
    Par tibo830 dans le forum SQL Anywhere
    Réponses: 7
    Dernier message: 12/05/2006, 10h09
  4. Réponses: 2
    Dernier message: 29/08/2003, 17h52
  5. Besoin d'aide avec postgresql sous windows NT
    Par Chihuahua dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/07/2003, 08h29

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