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 :

Bug dans les expressions régulières ?


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Par défaut Bug dans les expressions régulières ?
    Question au professionnels de la commande grep.... (lol) :

    Que devrais normalement renvoyer la commande suivante ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep '^[a-z]' /usr/share/dict/words
    Il me semble que sous Unix, on obtient uniquement les lignes qui commencent par une minuscule.
    Sous Linux (RedHat9) j'obtient toutes les lignes... (minuscule ET majuscules)...

    Qlq a-t-il une explication ?

    NB : je sais qu'il est possible de palier à celà en utilisant [[:lower:]], mais c'est quand même moins portable.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Par défaut
    Oui tu devrais obtenir que les lignes avec une minuscule en debut ....

    N'y aurrait t il pas une option pas default sur le shell ou grep sur ta distrib , qui ne tiendrai pas compte de la case ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 15
    Par défaut
    si tu tapes:
    ca dis quoi ?

  4. #4
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Par défaut
    Ca dit qu'il n'y a pas d'alias sur grep....

    Sur les autres distrib ca donne quoi ?

    NB 1 :
    J'ai le probleme même après une réinstall toute "fraiche" de RedHat9

    NB 2 :
    Le probleme n'est pas directement lié à grep, mais à l'interprétation par le shell de '[a-z]' car le probleme est identique si j'utilise sed :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed s/[a-z]/X/g monfichier
    remplace TOUT les caractères (a-z + A-Z) par X
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed s/[[:lower:]]/X/g monfichier
    ne remplace QUE les minuscules (a-z) par X[/b]

  5. #5
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Chez moi ça marche bien :

    >grep -V
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    grep (grep de GNU) 2.5.1
     
    Copyright 1988, 1992-1999, 2000, 2001 Free Software Foundation, Inc.
    Ce logiciel est libre; voir les sources pour les conditions de
    reproduction. AUCUNE garantie n'est donnée; tant pour des raisons
    COMMERCIALES que pour RÉPONDRE À UN BESOIN PARTICULIER.
    >cat txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    aaaaaaaaaaaaaaaaaaaaaaaa
    65465464664
    AZERZAERAZERZEAZEAZER
    bbq dfgsdfg sdfg sdg sdf6g4fs4df
    c qzrgf sdgfs5g4sd 5gs
     d gsdf4gsd46gsf
    54654 d4d654d6d4
    >grep '^[a-z]' txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    aaaaaaaaaaaaaaaaaaaaaaaa
    bbq dfgsdfg sdfg sdg sdf6g4fs4df
    c qzrgf sdgfs5g4sd 5gs

  6. #6
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Par défaut
    J'ai la même version de grep... mais encore une fois je pense que ca ne viens pas de grep lui même...

    J'ai retapé ton exemple pour etre sûr ! et .... il me retourne aussi la ligne en majuscule !

    C quoi ta distrib ?

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Par défaut
    tu n'aurai pas une option dans le shell qui interpreterer mal le ' ?
    essaye de changer de shell :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ksh grep '^[a-z]' /usr/share/dict/words
    pour verifier essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ksh -xv grep '^[a-z]' /usr/share/dict/words
    le -xv devrait afficher les lignes de commande ainsi que chaque ligne avant execution (mode debug)
    si tu es en bash sinon essaye bash avec les même option ....

  8. #8
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    je suis sous knoppix (~Debian) Tu peux essayer de faire la comande en protégeant l'expression :

    grep -e "^[a-z]" fichier

    mais ça ne devrait rien changer dans ton cas, m'enfin essaye quand même

  9. #9
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Par défaut
    Bon j'ai trouvé le pourquoi du comment....

    En fait le comportement est parfaitement normal en ce sens qu'il respecte la spécification IEEE Std 10003.1 2004 ..... et toc !

    Ce comportement est expliqué chez BugZilla :
    http://bugzilla.redhat.com/bugzilla/....cgi?id=104693

    Tous les détails de la spécification ici (prévoir un tube d'aspirine, lol) :
    http://www.unix.org/single_unix_specification/

    Voilà voilà.....

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

Discussions similaires

  1. [AC-2007] Bug dans les etats
    Par WestMadinina dans le forum IHM
    Réponses: 2
    Dernier message: 21/08/2009, 11h19
  2. bugs dans les tables
    Par Riwalenn dans le forum MS SQL Server
    Réponses: 19
    Dernier message: 01/10/2007, 11h43
  3. [ADO][SqlServer] Pb avec les paramètres dans les expressions
    Par pitango dans le forum Bases de données
    Réponses: 13
    Dernier message: 22/05/2007, 18h34
  4. [ADO] Bug dans les variables
    Par aityahia dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/01/2007, 10h36

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