GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come utilizzare Grep per cercare un motivo che inizia con un trattino (-)?

sudo find / -name "*" | xargs grep -sn --color=auto "-j"

Il comando sopra ritorna sotto:

grep: invalid option -- 'j'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
...

Come faccio a cercare la stringa -j ?

Risposta accettata:

Nel tuo caso "-j" è interpretato da grep come argomento/opzione, non come modello di ricerca, anche se l'hai citato. Per renderlo il modello per ciò che vuoi cercare, usa semplicemente -e opzione:

sudo find / -name "*" | xargs grep -sn --color=auto -e "-j"

o anche:

sudo find / -name "*" | xargs grep -sn --color=auto -e -j

Il -e argomento/opzione significa che l'argomento successivo è il modello. Questo è da 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.)

Altri modi:

  • usa -- , come ha detto @Rinzwind nella sua risposta, per creare grep per sapere che le opzioni sono terminate.

  • usa per evitare il trattino (- ):

    sudo find / -name "*" | xargs grep -sn --color=auto "-j"
    

Ubuntu
  1. Quale percorso usa `sudo ` per cercare “?

  2. Come utilizzare la GUI per cercare file in Gnome?

  3. Come cercare in Dconf chiavi o valori?

  4. Come si cercano file contenenti terminazioni di riga DOS (CRLF) con grep su Linux?

  5. Come cercare le pagine man di Linux (ad esempio con grep)

Come utilizzare il comando wget con esempi

Come utilizzare il comando di arresto di Linux con esempi

Come utilizzare le variabili d'ambiente con i grafici Helm

Come usare il comando grep in Linux/UNIX

Come escludere in Grep

Come eseguire la ricerca del modello nei file utilizzando Grep