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.