Estoy tratando de 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 personaje y saca todos los resultados. Pero quiero obtener el resultado solo para "0.49".

\\.para que funcione. Estoy usando zsh.\\.para bash, o usar"\."para escapar del shell.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.fuente
Necesitas escapar del
.as"0\.49".A
.es un meta-carácter regex para coincidir con cualquier carácter (excepto la nueva línea). Para coincidir con un período literal, debe escapar de él.fuente
Solo escapa del
.grep -r "0\.49"fuente
También puedes usar "[.]"
fuente
Hay tantas respuestas aquí que sugieren escapar del punto,
\.pero me he encontrado con este problema una y otra vez:\.me da el mismo resultado que.Sin embargo, estas dos expresiones funcionan para mí:
Y:
Estoy usando un shell bash "normal" en Ubuntu y Archlinux.
fuente
grep '\.'ogrep \\.(recomendaría encarecidamente el primero. Las comillas dobles también funcionan, como en la pregunta original; pero las comillas simples son más fáciles de entender y usar. Por ejemplo, con comillas dobles, aún necesitaría duplicar la barra diagonal inversa en algunos escenarios )Escape dot. El comando de muestra será.
fuente
Puede escapar del punto y otros caracteres especiales usando \
p.ej. grep -r "0 \ .49"
fuente
\.rodeado de citas es necesario para que funcione.También puede buscar con - opción que básicamente ignora todos los caracteres especiales y no será interpretada por grep.
fuente