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 :

Filtrer une chaine


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
    Novembre 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 75
    Par défaut Filtrer une chaine
    Bonjour,

    Je souhaite contrôler qu'une chaine respecte le filtre LLLC-CCCC... (où L est une lettre et C un chiffre).
    J'ai déjà trouvé le début [A-Z][A-Z][A-Z][0-9]-[0-9] sauf que je ne sais pas comment préciser qu'il peut y avoir 1 chiffre derrière le "-" comme 25...

    Merci pour votre aide

    Elodie

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    c'est à dire un nombre de caractères différents ?? comme entre 1, 22, 255 ou c'est respectivement 1, 2 et 3 caractères ?

    si c'est ça il faut faire par exemple ::

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ sed -e '/[a-z]\{3\}[0-9]-[0-9]\{1,9\}/ !d' a
    aaa2-56
    aaa4-5
    aaa9-444
    $
    toutes les lignes formée de "exactement3lettres"+"1chiffre"+"-"+"1 à 9 chiffres" sont affichées.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 75
    Par défaut
    Re-bonjour,

    J'ai trouvé [A-Z][A-Z][A-Z][1-9]-[0-9][0-9]* .
    Sauf que cela ne fonctionne pas dans mon grep.

    En fait je dois récupérer un commentaire et rechercher à l'intérieur si un mot correspond bien à ce filtre.

    Merci,

    Elodie

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 75
    Par défaut
    Bonjour,

    Pour ceux qui tomberaient sur mon post, j'ai tout simplement fait un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    egrep -o $monFiltre <<< $monCommentaire
    où $monFiltre est [A-Z][A-Z][A-Z][1-9]-[1-9][0-9]* .

    Merci,

    Elodie

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 100
    Par défaut
    Pour optimiser on peut rajouter un indicateur de cardinalité pour les premiers params
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [A-Z]{3}[0-9]-[0-9][1-9]*
    Si c'est dans le shell avec grep, il faudra sûrement échapper { et }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [A-Z]\{3\}[0-9]-[0-9][1-9]*

  6. #6
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    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 347
    Par défaut
    Bonjour,

    Le problème est mal posé car:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo "ABCD9-345" | grep '[A-Z]\{3\}[0-9]-[0-9][1-9]*'
    ABCD9-345
    Doit on être stricte, 3 lettres qui se suivent et pas plus ???

  7. #7
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    L'inversion entre [0-9] et [1-9] n'est pas de bon aloi.

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

Discussions similaires

  1. Comment filtrer une chaine de caractère
    Par pierrot10 dans le forum jQuery
    Réponses: 6
    Dernier message: 24/02/2012, 14h23
  2. Filtrer une chaine de caractère sur le 6ème caractère
    Par lfa44 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 12/02/2010, 18h51
  3. [RegEx] Filtrer une chaine de caractère
    Par JulienFio dans le forum Langage
    Réponses: 44
    Dernier message: 17/06/2009, 10h36
  4. Réponses: 2
    Dernier message: 31/03/2009, 15h48
  5. Filtrer une chaine de caractères
    Par ledisciple dans le forum Langage
    Réponses: 12
    Dernier message: 21/08/2008, 17h02

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