Utilisation expression régulière avec grep

Résolu
Bonjour,

Je cherche à comprendre comment utiliser \b avec grep.
Soit le fichier tel que
$cat X

Je suis en train de regarder un eventail
Lorsqu'on tape :
cat X | grep --colour=auto \be

Aucun résultat...
\b affiche la chaîne se trouvant en limite de mot, le e de Je devrait être en rouge normalement.
Pourquoi ce n'est pas le cas?

Merci pour vos réponses :)

2 réponses



  1. Je pense que le problème viens du fait que je n'ai pas déspécialisé le \ avec les guillemets. ^^ Merci pour votre aide ! :D
    0
    1. Contributeur
      Extrait du man grep¹ :

      Any meta-character with special meaning may be quoted by preceding it with a backslash.


      ¹ La consultation des pages de man doit devenir un réflexe si tu veux persévérer dans l'utilisation du terminal.
      0
    2. @zipe31Mais donc vous auriez pu aussi écrire
      grep \\be fich
      0
    3. Contributeur
      @CrazyGeekManOui, mais le plus simple reste quand même de quoter les expressions régulières.

      Quand on commence à tout protéger avec des anti-slahs, ça devient vite imbuvable ;-(
      0
    4. @zipe31C'est vrai :)
      Merci :)
      0
    5. @CrazyGeekManMalheureusement je ne comprend pas encore un exemple avec grep... :
      cat X

      aaad
      grep "a+b*c?d" X

      Rien ne s'affiche ...
      Normalement le aaad devrait s'afficher en rouge car il y a 1 a ou plus, b 0 ou plus, c 0 ou une fois et un d.
      Pourquoi cela ne marche pas?
      0
  2. Contributeur
    Salut,

    Quelle distrib ? Quel shell ? Quelle version de grep ?

    Chez moi :
    $ lsb_release -ir
    Distributor ID: LinuxMint
    Release: 17.3

    $ bash --version
    GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)

    $ grep --version
    grep (GNU grep) 2.16


    1