No estoy seguro si no entiendo completamente grep
o si las expresiones regulares son la fuente de mi problema, así que tengo dos preguntas. Tengo un archivo de prueba simple llamado test.txt
con el siguiente contenido:
$ cat test.txt Settings.xml blah Settings_1.xml blah Settings_2.xml
Cuando ejecuto grep
en un directorio que contiene solo el archivo de prueba anterior con el siguiente comando, devuelve sin coincidencias:
$ grep -ir "Settings*xml"
*1) ¿Por qué el comodín `` no está capturando el punto?**
Y cuando ejecuto grep
de la siguiente manera:
$ grep -ir "Settings*.xml"
siendo la única diferencia el punto después del comodín, los resultados son:
test.txt:Settings.xml
2) ¿Por qué grep
no encuentra las otras dos coincidencias?
0 votos
Parece que el
*
no estaba haciendo lo que pensaba (ver la respuesta de @ArkadiuszDrabczyk). Una solución que sí devuelve lo que quiero es:$ grep -ir "Settings[[:alnum:][:punct:]]*.xml"