Ecco il comando :
grep '(2)[[:digit:]]{1}' numbers
Quello che voglio è abbinare esattamente 2 cifre dopo la cifra "2", 3 cifre se cambio la cifra "2" in "3" nella mia espressione, 4 cifre se ...
Sto usando il back-reference qui ma quando eseguo questo comando ho il seguente output:
grep: invalid content of {}
Come si potrebbe cambiare la mia espressione?
prima soluzione :
Come ha risposto Serge :
2[[:digit:]]{1}|3[[:digit:]]{2}|4[[:digit:]]{3}|5[[:digit:]]{4}
Potrebbe effettivamente funzionare, ma supponiamo di avere (34)
come prima sottoespressione, vorrei poter fare riferimento a quel numero in modo da non dover implementare i 34 casi (o più).
Risposta accettata:
I back-reference non sono consentiti qui. Devi scrivere l'espressione che descriverà tutti i casi possibili, ad es.:
2[[:digit:]]{1}|3[[:digit:]]{2}|4[[:digit:]]{3}|5[[:digit:]]{4}