GNU/Linux >> Linux Esercitazione >  >> Linux

Grep:contenuto non valido di {}?

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}

Linux
  1. Grep -v Comportamento imprevisto?

  2. Come Grep nel contenuto di una variabile stringa?

  3. comando Linux grep

  4. Termini di servizio

  5. Usa grep per trovare il contenuto nei file e spostarli se corrispondono

Grep Regex:una guida completa

Come escludere in Grep

Espressioni regolari in Grep (Regex)

Comando Grep in Linux/UNIX

Come grep \n nel file

Come cercare una parola nell'intero contenuto di una directory in Linux