regular inside for examples ejemplos ejemplo regex grep character-class

regex - inside - ¿Por qué no funciona este patrón en egrep?



grep linux (5)

Por completitud:

De hecho, Egrep tiene soporte para clases de personajes. Las clases son:

  • [: alnum:]
  • [:alfa:]
  • [: cntrl:]
  • [:dígito:]
  • [:grafico:]
  • [:inferior:]
  • [:impresión:]
  • [: punteado:]
  • [:espacio:]
  • [:Superior:]
  • [: xdigit:]

Ejemplo (note los dobles corchetes):

egrep ''[[:digit:]]{7}-[[:digit:]]{10}'' file

¿Por qué no puedo unir la cadena?

"1234567-1234567890"

con la expresion regular dada

/d{7}-/d{10}

con egrep de la cáscara como esta:

egrep /d{7}-/d{10} file

?


Use [0-9] en lugar de / d. egrep no sabe / d.


prueba este

egrep ''(/d{7}-/d{10})'' file


puede usar /d si pasa grep la opción "perl regex", por ejemplo:

grep -P "/d{9}"


egrep no reconoce /d taquigrafía para la clase de caracteres de dígitos, por lo que necesita usar, por ejemplo, [0-9] .

Además, si bien no es absolutamente necesario en este caso, es un buen hábito citar la expresión regular para evitar interpretaciones erróneas por parte del shell. Por lo tanto, algo como esto debería funcionar:

egrep ''[0-9]{7}-[0-9]{10}'' file

Ver también

Referencias