GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie verwendet man Grep, um nach einem Muster zu suchen, das mit einem Bindestrich (-) beginnt?

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, um grep 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"
    

Ubuntu
  1. Welchen Pfad verwendet „sudo“ für die Suche nach „?

  2. Wie verwende ich die GUI, um in Gnome nach Dateien zu suchen?

  3. Wie kann man Dconf nach Schlüsseln oder Werten durchsuchen?

  4. Wie kann ich in einer Datei nach einem mehrzeiligen Muster suchen?

  5. Pipe-Ausgabe zur Verwendung als Suchspezifikation für grep unter Linux

Verwendung des wget-Befehls mit Beispielen

So verwenden Sie den Linux-Shutdown-Befehl mit Beispielen

So verwenden Sie Umgebungsvariablen mit Helm-Diagrammen

So verwenden Sie den grep-Befehl unter Linux/UNIX

So schließen Sie in Grep aus

So führen Sie eine Mustersuche in Dateien mit Grep durch