J'essaie de rechercher une chaîne 0.49
(avec un point) à l'aide de la commande
grep -r "0.49" *
Mais ce qui se passe, c'est que j'obtiens également des résultats indésirables contenant la chaîne telle que 0449
, 0949
etc. Le truc, c'est que linux considère dot (.) Comme n'importe quel caractère et fait ressortir tous les résultats. Mais je veux obtenir le résultat uniquement pour "0.49".
\\.
pour que ça marche. J'utilise zsh.\\.
pour bash, ou utiliser"\."
pour l'échapper du shell.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.la source
Vous devez échapper au fichier
.
as"0\.49"
.A
.
est un méta-caractère regex pour correspondre à n'importe quel caractère (sauf nouvelle ligne). Pour correspondre à une période littérale, vous devez y échapper.la source
Juste échapper au
.
grep -r "0\.49"
la source
Vous pouvez aussi utiliser "[.]"
la source
Il y a tellement de réponses ici suggérant d'échapper au point avec
\.
mais j'ai rencontré ce problème encore et encore:\.
me donne le même résultat que.
Cependant, ces deux expressions fonctionnent pour moi:
Et:
J'utilise un shell bash "normal" sur Ubuntu et Archlinux.
Modifier, ou, selon les commentaires:
Remarquez que les guillemets simples font la différence ici.
la source
grep '\.'
ougrep \\.
(je recommanderais fortement le premier. Les guillemets doubles fonctionnent aussi, comme dans la question d'origine; mais les guillemets simples sont plus faciles à comprendre et à utiliser. Par exemple, avec des guillemets doubles, vous devrez quand même doubler la barre oblique inverse dans certains scénarios ).Point d'échappement. Exemple de commande sera.
la source
Vous pouvez échapper le point et les autres caractères spéciaux en utilisant \
par exemple. grep -r "0 \ .49"
la source
\.
entouré de citations est nécessaire pour le faire fonctionner.Vous pouvez également rechercher avec l'option - qui ignore fondamentalement tous les caractères spéciaux et ne sera pas interprétée par grep.
la source