grep -F -r '0.49' * behandelt 0,49 als "festen" String statt als regulären Ausdruck. Das ergibt . seine besondere Bedeutung verlieren.
grep verwendet reguläre Ausdrücke; . bedeutet "beliebiges Zeichen" in einer Regex. Wenn Sie eine wörtliche Zeichenfolge wünschen, verwenden Sie grep -F , fgrep , oder maskieren Sie . bis \. .
Vergessen Sie nicht, Ihren String in doppelte Anführungszeichen zu setzen. Andernfalls sollten Sie \\. verwenden
Ihr Befehl müsste also lauten:
grep -r "0\.49" *
oder
grep -r 0\\.49 *
oder
grep -Fr 0.49 *
Sie müssen . maskieren als "0\.49" .
Ein . ist ein Regex-Metazeichen, das mit jedem Zeichen übereinstimmt (außer Newline). Um einen wörtlichen Punkt zu finden, müssen Sie ihn maskieren.