OVH Cloud OVH Cloud

Rechercher antislash grep

1 réponse
Avatar
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 ?

1 réponse

Avatar
Matthieu Moy
Emmanuel Gillot <emmanuel.gillotAROBASgmailPOINTcom> writes:

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
\,


$ echo ''

$ echo '' | grep \


... en fait, tu greppais aussi les simples slash.

malheureusement je réussi pas a rechercher les antislashs simples
par la commande grep ,


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