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

Linux Discussion :

Grep, Regexp et variables


Sujet :

Linux

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 245
    Points : 106
    Points
    106
    Par défaut Grep, Regexp et variables
    Bonjour,

    Je m'interroge sur l'utilisation d'expressions régulières avec la commande grep.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # Chercher les fichiers *toto*
    ls | grep -e 'toto'
     
    # Chercher le fichier toto
    ls | grep -e '^toto$'
     
    # Chercher les fichiers *toto* ou *titi*
    ls | grep -e 'toto|titi'
     
    # Chercher les fichiers toto et titi
    ls | grep -e '^(toto|titi)$'
    Si les deux premières fonctionnent parfaitement, ce n'est pas le cas des deux premiers qui ne retournent aucun résultat.

    Avez-vous une idée de comment faire ? Merci beaucoup.

  2. #2
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut


    -E, --extended-regexp
    Interpréter le MOTIF comme une expression rationnelle étendue

  3. #3
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Salut

    ... ou rendre spéciaux les caractères non-spéciaux ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ls | grep -e 'toto\|titi'
    ls | grep -e '^\(toto\|titi\)$'

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 245
    Points : 106
    Points
    106
    Par défaut
    Ca fonctionne très bien avec l'option -E. Merci.

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 245
    Points : 106
    Points
    106
    Par défaut
    Manifestement ça ne fonctionne pas si bien que ça. Je ne parviens pas à faire fonctionner ces commandes avec une variable du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $fichier=toto
     
    ls | grep -E '^$fichier$'
     
    regexp="'^("$toto")$'"
    ls | grep -vE $regexp
    La commande renvoie tous les fichiers.

  6. #6
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    Une variable entourée de simple-quote ne sera pas substituée par son contenu, solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls | grep -E "^$fichier$"

  7. #7
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    En échappant le $ de fin de chaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls | grep -E "^$fichier\$"

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

Discussions similaires

  1. grep puis test variable
    Par plnew dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 13/04/2012, 10h50
  2. grep et les variable
    Par selmani300 dans le forum Linux
    Réponses: 4
    Dernier message: 21/04/2009, 10h24
  3. sed et regexp avec variables
    Par vpovpo dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 29/12/2007, 20h52
  4. Grep, regexp, windowsupdate et base de regitre
    Par ggnore dans le forum Linux
    Réponses: 7
    Dernier message: 18/01/2006, 17h36
  5. RegExp et variables
    Par nicolb dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/06/2005, 16h16

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