GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak používat Grep k hledání vzoru, který začíná spojovníkem (-)?

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řit grep 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"
    

Ubuntu
  1. Jak vyhledávat v konkrétních souborech odpovídajících vzoru?

  2. Jak vyhledáváte soubory obsahující konce řádků DOS (CRLF) pomocí grep v Linuxu?

  3. Jak mohu vyhledat víceřádkový vzor v souboru?

  1. Jak Grep linky, které nezačínají "#" nebo ";"?

  2. Jak prohledávat manuálové stránky Linuxu (např. pomocí grep)

  3. jak provést vim vyhledávání inverzní vyhledávání pro všechny řádky bez textu

  1. Jakou cestu používá `sudo ` k hledání “?

  2. Jak používat Gui k hledání souborů v Gnome?

  3. Jak hledat klíče nebo hodnoty v Dconf?