grep -F -r '0.49' * traite 0,49 comme une chaîne "fixe" au lieu d'une expression régulière. Cela fait . perdre sa signification particulière.
grep utilise des expressions régulières ; . signifie "n'importe quel caractère" dans une expression régulière. Si vous voulez une chaîne littérale, utilisez grep -F , fgrep , ou échappez le . à \. .
N'oubliez pas d'entourer votre chaîne de guillemets doubles. Sinon, vous devez utiliser \\.
Donc, votre commande devrait être :
grep -r "0\.49" *
ou
grep -r 0\\.49 *
ou
grep -Fr 0.49 *
Vous devez échapper le . comme "0\.49" .
Un . est un méta-caractère regex pour correspondre à n'importe quel caractère (sauf la nouvelle ligne). Pour correspondre à un point littéral, vous devez l'échapper.