Partage
  • Partager sur Facebook
  • Partager sur Twitter

Expressions rationnelles avec grep

    11 janvier 2021 à 16:55:18

    Bonjour, j'essaie d'apprendre quelques bases de commandes sous Linux. J'ai la commande suivante :

    egrep "^[[:lower:]]{3}.*[^[:lower:]]{3}$" /usr/include/*.h

    Qui permet de, dans les fichiers .h du répertoire /usr/include , recherchez toutes les lignes commençant par 3 lettres minuscules et se terminant par 3 caractères qui n'en sont pas.

    J'aimerai un peu mieux comprendre la signification de chaque caractère.

    Tout d'abord egrep est tout simplement une version amélioré de grep, si je ne me trompe pas. Ensuite, le "^" signifie que l'on cherche en début de ligne la suite ... [:lower:] qui permet de rechercher toutes les minuscules. le "{3}" je ne sais pas trop ... Ensuite le point "." et l'étoile "*" je ne comprends leurs utilité à cet endroit là ainsi qu'à la fin pour "*.h".

    Est-il possible de m'éclairer ?

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      11 janvier 2021 à 17:33:16

      salut,

      non, pas améliorée. c'est grep, mais avec l'option -E.

      les {n,m} indiquent un nombre max et min d'occurrence. s'il n'y a qu'un nombre, c'est le nombre exact d'occurrence qui doit correspondre.
      le <code<^ en début d'expression indique un début de ligne, mais entre crochets, cela indique une négation.
      le . indique un caractère quelconque (ponctuation, lettre, chiffre...)

      /!\ il ne faut pas confondre les globbing du shell (man -P 'less -p "^ +pattern matching"' bash) avec des regex (man 7 regex)

      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

        11 janvier 2021 à 18:22:16

        D'accord merci pour ces explications
        • Partager sur Facebook
        • Partager sur Twitter

        Expressions rationnelles avec grep

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown