Rechercher antislash grep
Le
Emmanuel Gillot
Je souhaiterais utiliser grep pour rechercher les antislashs présents
dans fichier.
J'ai réussi a rechercher les doubles antislash par la commande : grep
\\\\, malheureusement je réussi pas a rechercher les antislashs simples
par la commande grep \\, j'ai le message d'erreur suivant :
grep: Barre oblique inverse en suffixe
Est ce que quelqu'un aurait la solution ?
dans fichier.
J'ai réussi a rechercher les doubles antislash par la commande : grep
\\\\, malheureusement je réussi pas a rechercher les antislashs simples
par la commande grep \\, j'ai le message d'erreur suivant :
grep: Barre oblique inverse en suffixe
Est ce que quelqu'un aurait la solution ?

Poser une question


$ echo ''
$ echo '' | grep \\
... en fait, tu greppais aussi les simples slash.
Du coup, tu as la réponse au dessus.
Quand tu tappes
$ grep \\
dans un shell (disons, bash), le shell fait l'interpretation des
backslash. Il appelle
"grep" "\"
là, grep regarde sons premier argument, deux backslash, et il
interprete que le premier est l'échappement du second. Par exemple, il
aurait pu voir "." et dire que précédé d'un backslash, le point est
simplement un point (alors qu'il aurait matché n'importe quel
caractère sauf n sinon). Donc, au final, il cherche la chaine "".
Pour éviter une partie des ennuis, utilises les guillemets simples,
qui empêchent le shell d'interpreter le contenu :
$ grep '\'
Maintenant, la recherche du double backslash est laissée en exercice,
mais c'est facile !
--
Matthieu