grep -F -r '0.49' * tratta 0.49 come una stringa "fissa" invece di un'espressione regolare. Questo fa . perdere il suo significato speciale.
grep usa espressioni regolari; . significa "qualsiasi carattere" in una regex. Se vuoi una stringa letterale, usa grep -F , fgrep o esegui l'escape di . a \. .
Non dimenticare di racchiudere la stringa tra virgolette. Oppure dovresti usare \\.
Quindi, il tuo comando dovrebbe essere:
grep -r "0\.49" *
o
grep -r 0\\.49 *
o
grep -Fr 0.49 *
Devi sfuggire al . come "0\.49" .
Un . è un meta-carattere regex per corrispondere a qualsiasi carattere (tranne la nuova riga). Per abbinare un punto letterale, devi eseguirne l'escape.