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.