Usar grep para buscar una cadena que tenga un punto
Estoy intentando buscar una cadena 0.49
(con punto) usando el comando
grep -r "0.49" *
Pero lo que sucede es que también obtengo resultados no deseados que contienen cadenas como 0449
, 0949
etc. La cuestión es que Linux considera el punto (.) como cualquier carácter y muestra todos los resultados. Pero quiero obtener el resultado sólo para "0,49".
Aceptado
grep
utiliza expresiones regulares; .
significa "cualquier carácter" en una expresión regular. Si desea una cadena literal, utilice grep -F
, fgrep
o escape .
a \.
.
No olvides encerrar tu cadena entre comillas dobles. O sino deberías usar\\.
Entonces, tu comando debería ser:
grep -r "0\.49" *
o
grep -r 0\\.49 *
o
grep -Fr 0.49 *
grep -F -r '0.49' *
trata 0,49 como una cadena "fija" en lugar de una expresión regular. Esto hace que .
pierda su significado especial.