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 :

commande grep -E !


Sujet :

Linux

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Points : 11
    Points
    11
    Par défaut commande grep -E !
    bonjour tous le monde ;

    voilà je dois utiliser la commande grep -E suivi d'une expression_ régulière pour filtrer les lignes du fichiers data.txt ci joint ...
    je dois obtenir des lignes du genre ci dessous pour qu'elle soit valide:
    1 2
    2 -3.5
    4.2 1.1
    -5 6

    càd (nb entiers ou décimaux séparés par ds espaces )
    on précise ( espace=[[:space:]] )

    voilà ma commande , mais elle est pas tout à fait au point

    ka600383@polymnie ~/SI/TP11> grep -E '^-?[0-9](.[0-9])? [[:space:]]{1,} -?[0-9](.[0-9])?$' data.txt


    merci
    cdt
    Fichiers attachés Fichiers attachés

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    le shell que j'utilise est :

    zsh 4.3.2 (i686-pc-linux-gnu)

    cdt

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    Bonjour,
    je ne sais pas si ca te conviens en awk
    awk -F' ' '/^(-|)?[0-9].+(-|)?[0-9]$/{print $1,$2}' data.txt
    je n'arrive pas non plus a filtrer ton fichier avec grep ou sed.
    Je suis arrivé a quelque chose en awk.
    avec grep j'arrive a afficher 27 lignes mais y'en a deux qui ne veulent pas s'afficher( je comprend pas pourquoi) surement une erreur dans mes regex.

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 587
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 587
    Points : 19 467
    Points
    19 467
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sed -n '
    # manifestement, tu ne veux pas des lignes dans lesquelles apparait du texte,
    # donc :
    /[a-zA-Z]/d
    # ensuite, tu veux afficher les "nb entiers ou décimaux séparés par des espaces"
    /^-\?[0-9]\(.[0-9]\?\)* *\([0-9]\(.[0-9]\)\?\)\?$/p'  data.txt
    La partie nombre est un peu lourde, tu pourras peut-être l'affiner.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    bonjour tous le monde ;

    aprés avoir super galérer , je trouve une commande qui me sort tous les nombres que je cherche

    grep -E '^-?[0-9](.[0-9]?)* [[:space:]]* *(-?[0-9](.[0-9])?)?*$' data.txt

    bon l'ennui c'est que je sais pas trop comment l'interpréter surtout dans la seconde partie aprés le [[:space:]]* , donc si quelqu'un pouvait m'éclairer ?

    merci
    cdt

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    ca y est j'ai trouvé la bonne commande et je sais l'interpréter

    grep -E "^-?[0-9]*(.[0-9]*)?[[:space:]]+-?[0-9]*(.[0-9]*)?$" data.txt


    merçi pour les réponses .....
    cdt

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

Discussions similaires

  1. [shell] commande grep
    Par scolopendra dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 01/10/2008, 15h39
  2. Aide sur la commande GREP
    Par roadruner dans le forum Linux
    Réponses: 6
    Dernier message: 30/07/2007, 19h43
  3. utiliser commande grep
    Par salim81 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 01/07/2007, 21h52
  4. Le temps que la commande "grep" en shell prend
    Par Pauli dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 25/12/2006, 19h59
  5. Commande Grep
    Par zalett dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 20/03/2006, 23h29

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