sudo find / -name "*" | xargs grep -sn --color=auto "-j"
La commande ci-dessus renvoie ci-dessous :
grep: invalid option -- 'j'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
...
Comment rechercher la chaîne -j
?
Réponse acceptée :
Dans votre cas "-j"
est interprété par grep
comme argument/option, pas comme motif de recherche, même si vous l'avez cité. Pour en faire le modèle de ce que vous souhaitez rechercher, utilisez simplement -e
choix :
sudo find / -name "*" | xargs grep -sn --color=auto -e "-j"
ou encore :
sudo find / -name "*" | xargs grep -sn --color=auto -e -j
Le -e
argument/option signifie que l'argument suivant est le modèle. Cela vient de man grep
:
-e PATTERN, --regexp=PATTERN
Use PATTERN as the pattern. This can be used to specify
multiple search patterns, or to protect a pattern beginning with
a hyphen (-). (-e is specified by POSIX.)
Autres moyens :
-
utilisez
--
, comme @Rinzwind l'a dit dans sa réponse, pour fairegrep
savoir que les options sont terminées. -
utilisez
pour échapper le trait d'union (
-
):sudo find / -name "*" | xargs grep -sn --color=auto "-j"