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 :

Problème avec grep


Sujet :

Shell et commandes GNU

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 105
    Points : 198
    Points
    198
    Par défaut Problème avec grep
    bonjour

    j' était entrain de faire un exercice et j'ai pas bien compris la solution d'une commande :

    Nom : open.png
Affichages : 191
Taille : 9,1 Ko
    merci d'avance

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    C'est pour rejeter les lignes qui commenceraient par le séparateur :.

    [^0-9]* signifie : un nombre indéfini de caractères non numériques, y compris aucun.
    En ajoutant [^0-9] devant, l'expression devient : au moins un caractère non numérique.

    Je suppose que tu apprendras le quantificateur + dans un exercice suivant
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 105
    Points : 198
    Points
    198
    Par défaut
    merci bien !
    des sources français (gratuit ) pour bien maîtriser ces commandes de base ?

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 105
    Points : 198
    Points
    198
    Par défaut
    une dernière petite questionne :

    quelle est la différence entre "*[^0-9]" et "[^0-9]*" ?

  5. #5
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    Citation Envoyé par HAM_10 Voir le message
    quelle est la différence entre "*[^0-9]" et "[^0-9]*" ?
    la première correspond plutôt à du globbing à mon avis, elle signifie "zéro ou plusieurs caractère(s) suivi(s) (le dernier caractère donc) d'un caractère qui n'est pas un chiffre"
    la deuxième pourrait passer pour une expression rationnelle mais dans le contexte du globbing elle signifie "le premier caractère n'est pas un chiffre, suivi de zéro ou plus autres caractères quelconques"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    # ls *
    _123_  1234a  123abc  1abcde  a1234  a1b2c3  ~abc~  abc123  abcde1
    # ls *[^0-9]
    _123_  1234a  123abc  1abcde  ~abc~
    # ls [^0-9]*
    _123_  a1234  a1b2c3  ~abc~  abc123  abcde1
    note que ça n'a rien à voir avec les expressions qu'utilise grep, ici il s'agit de globbing effectué par le shell directement, la syntaxe *[^0-9] ne fonctionne pas avec grep qui utilise des expressions rationnelles (regular expressions, regexp) et même de plusieurs sortes (basiques, étendues et compatibles Perl, donc oui je te confirme : c'est un peu le bordel )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    # ls | grep -G "*[^0-9]" --color=always | xargs
     
    # ls | grep -E "*[^0-9]" --color=always | xargs
    _123_ 1234a 123abc 1abcde a1234 a1b2c3 ~abc~ abc123 abcde1
    # ls | grep -P "*[^0-9]" --color=always | xargs
    /bin/grep: nothing to repeat
     
    # ls | grep -G "[^0-9]*" --color=always | xargs
    _123_ 1234a 123abc 1abcde a1234 a1b2c3 ~abc~ abc123 abcde1
    # ls | grep -E "[^0-9]*" --color=always | xargs
    _123_ 1234a 123abc 1abcde a1234 a1b2c3 ~abc~ abc123 abcde1
    # ls | grep -P "[^0-9]*" --color=always | xargs
    _123_ 1234a 123abc 1abcde a1234 a1b2c3 ~abc~ abc123 abcde1
    (les switches -G, -E, -P permettent d'utiliser les regex basiques, étendues et PCRE, l'option --color=always met de la couleur sur ce qui matche réellement (perdue avec le copier/coller), xargs permet d'afficher tout sur une seule ligne)

Discussions similaires

  1. problème avec grep -v
    Par medsup dans le forum Linux
    Réponses: 5
    Dernier message: 17/06/2011, 17h00
  2. Problème avec grep
    Par oumokhtar dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 25/01/2009, 15h55
  3. Problème avec grep et regexp
    Par redvivi dans le forum Linux
    Réponses: 10
    Dernier message: 16/08/2008, 16h41
  4. Problème avec grep sous Cygwin
    Par tnarol dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 09/07/2008, 17h12
  5. Problème avec grep
    Par narmika dans le forum Langage
    Réponses: 9
    Dernier message: 05/10/2007, 18h16

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