Usar grep para buscar una cadena que tenga un punto

Resuelto Varun kumar asked hace 12 años • 9 respuestas

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, 0949etc. 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".

Varun kumar avatar Apr 27 '12 14:04 Varun kumar
Aceptado

greputiliza expresiones regulares; .significa "cualquier carácter" en una expresión regular. Si desea una cadena literal, utilice grep -F, fgrepo 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 *
geekosaur avatar Apr 27 '2012 07:04 geekosaur

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.

Joni avatar Apr 27 '2012 07:04 Joni