GNU/Linux >> Tutoriales Linux >  >> Linux

Grep:¿Contenido no válido de {}?

Aquí está el comando:

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

Lo que quiero es hacer coincidir exactamente 2 dígitos después del dígito '2', 3 dígitos si cambio el dígito '2' a '3' en mi expresión, 4 dígitos si...

Estoy usando referencias inversas aquí, pero cuando ejecuto este comando tengo el siguiente resultado:

grep: invalid content of {}

¿Cómo se podría cambiar mi expresión?

primera solución:
Como respondió Serge:

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

Eso podría funcionar, pero supongamos que tengo (34) como la primera subexpresión, desearía poder hacer una referencia inversa a ese número para no tener que implementar los 34 casos (o más).

Respuesta aceptada:

Las referencias anteriores no están permitidas aquí. Tienes que escribir la expresión que describirá todos los casos posibles, por ejemplo:

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

Linux
  1. Grep -v ¿Comportamiento inesperado?

  2. ¿Comprobar que se está ejecutando un script?

  3. Grep y cola -f?

  4. ¿Lista los nombres de archivo según un patrón de nombre de archivo y el contenido del archivo?

  5. Cómo grep \n en el archivo

Grep Regex:una guía completa

Cómo excluir en Grep

Expresiones regulares en Grep (Regex)

Comando Grep en Linux/UNIX

Use grep para encontrar contenido en archivos y moverlos si coinciden

¿Cómo hago grep recursivamente?