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}