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

Verwenden von Grep -rekursiv, wie kann man eine bestimmte Zeile mit dem "unerwünschten" und "gesuchten" Wort darin ausschließen?

Ich erstelle gerade meine Dotfiles und möchte alle TODO: ... auflisten Kommentare im Verzeichnis meines Projekts habe ich dafür einen Bash-Alias ​​erstellt:

 alias mytodo='grep --recursive "TODO: "'

Es funktioniert gut, gibt jedoch auch die Alias-Definition zurück. Dies ist die Beispielausgabe.

 [email protected]$ mytodo

 bash/profile.d/aliases/: alias mytodo='grep --recursive "TODO: "'
 bin/git_branch_status/: # TODO: Add checking of remote branch status.
 tools/setup/: # TODO: Add search for existing symlinks.

wie kann ich diese Zeile gezielt mit der Alias-Definition ausschließen?

Akzeptierte Antwort:

Eine Möglichkeit, einen regulären Ausdruck daran zu hindern, sich selbst zu finden, besteht darin, ein einzelnes Zeichen in eine Zeichenklasse einzuschließen:

alias mytodo='grep --recursive "TOD[O]: "'

Alternativ (Hutspitze an Stéphane Chazelas) könnten Sie den Alias ​​mit zusätzlichen Anführungszeichen im Muster speichern:

alias mytodo='grep --recursive "TO''DO: "'

Dann wird die Zeile immer noch nicht gefunden, aber der Alias ​​enthält das ursprüngliche Muster. Dies ist hilfreich, wenn Sie z. eine feste Zeichenfolgenübereinstimmung (grep -F ).


Linux
  1. Arbeiten mit Pipes auf der Linux-Befehlszeile

  2. Wie führe ich Grep mit mehreren und Mustern aus?

  3. Wie hebt man ein Wort in der Ausgabe von „Katze“ hervor?

  4. Wie entferne ich ein Wortpräfix mit grep?

  5. Wie man nach einem bestimmten Wort sucht und Text greift

So finden Sie eine bestimmte Zeichenfolge oder ein bestimmtes Wort in Dateien und Verzeichnissen

So schließen Sie Dateien und Verzeichnisse mit Rsync aus

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

Verwenden des GREP-Befehls unter Linux mit Beispielen

Bearbeiten von Text in der Befehlszeile mit grep

Wie kann man die -f-Ausgabe mit Farben nur mit Awk anpassen und den Rest der Ausgabe anzeigen?