GNU/Linux >> Tutoriels Linux >  >> Linux

Grep :Contenu non valide de {} ?

Voici la commande :

grep '(2)[[:digit:]]{1}' numbers

Ce que je veux, c'est faire correspondre exactement 2 chiffres après le chiffre '2', 3 chiffres si je change le chiffre '2' en '3' dans mon expression, 4 chiffres si …

J'utilise la rétro-référence ici mais lorsque j'exécute cette commande, j'ai le résultat suivant :

grep: invalid content of {}

Comment pourrait-on changer mon expression ?

première solution :
Comme serge a répondu :

2[[:digit:]]{1}|3[[:digit:]]{2}|4[[:digit:]]{3}|5[[:digit:]]{4}

Cela pourrait fonctionner, mais supposons que j'ai (34) en tant que première sous-expression, j'aimerais pouvoir faire référence à ce nombre afin de ne pas avoir à implémenter les 34 cas (ou plus).

Réponse acceptée :

Les références arrière ne sont pas autorisées ici. Vous devez écrire l'expression qui décrira tous les cas possibles, par exemple :

2[[:digit:]]{1}|3[[:digit:]]{2}|4[[:digit:]]{3}|5[[:digit:]]{4}

Linux
  1. Grep :Mémoire épuisée ?

  2. Grep :Contenu non valide de {} ?

  3. Grep -v Comportement inattendu ?

  4. Couper / Grep Et Df -h ?

  5. Grep et queue -f ?

Grep Regex :un guide complet

Comment exclure dans Grep

Expressions régulières dans Grep (Regex)

Commande Grep sous Linux/UNIX

Comment rechercher un mot dans tout le contenu d'un répertoire sous Linux

Utiliser grep contre awk