sudo find / -name "*" | xargs grep -sn --color=auto "-j"
Výše uvedený příkaz vrátí níže:
grep: invalid option -- 'j'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
...
Jak najdu řetězec -j
?
Přijatá odpověď:
Ve vašem případě "-j"
je interpretován pomocí grep
jako argument/možnost, nikoli jako vyhledávací vzor, i když jste jej citovali. Chcete-li, aby to byl vzor pro to, co chcete hledat, stačí použít -e
možnost:
sudo find / -name "*" | xargs grep -sn --color=auto -e "-j"
nebo dokonce:
sudo find / -name "*" | xargs grep -sn --color=auto -e -j
-e
argument/volba znamená, že dalším argumentem je vzor. Toto je od 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.)
Jiné způsoby:
-
použijte
--
, jak řekl @Rinzwind ve své odpovědi, vytvořitgrep
abyste věděli, že možnosti skončily. -
použijte
chcete-li uniknout pomlčce (
-
):sudo find / -name "*" | xargs grep -sn --color=auto "-j"