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
- regular-expressions.info/Flavor comparacion
- Nota de sabor para GNU
grep
,ed
,sed
,egrep
,awk
,emacs
- Enumera las diferencias entre
grep
vsegrep
vs otros regex.
- Enumera las diferencias entre
- Nota de sabor para GNU