sudo find / -name "*" | xargs grep -sn --color=auto "-j"
Obiger Befehl gibt unten zurück:
grep: invalid option -- 'j'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
...
Wie suche ich nach der Zeichenfolge -j
?
Akzeptierte Antwort:
In Ihrem Fall "-j"
wird von grep
interpretiert als Argument/Option, nicht als Suchmuster, auch wenn Sie es zitiert haben. Um es zum Muster für das zu machen, was Sie suchen möchten, verwenden Sie einfach -e
Möglichkeit:
sudo find / -name "*" | xargs grep -sn --color=auto -e "-j"
oder sogar:
sudo find / -name "*" | xargs grep -sn --color=auto -e -j
Das -e
Argument/Option bedeutet, dass das nächste Argument das Muster ist. Dies ist von 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.)
Andere Wege:
-
Verwenden Sie
--
, wie @Rinzwind in seiner Antwort sagte, umgrep
zu machen um zu wissen, dass die Optionen beendet sind. -
Verwenden Sie
um dem Bindestrich zu entgehen (
-
):sudo find / -name "*" | xargs grep -sn --color=auto "-j"