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

Grep Wie unterdrücke ich die Anzeige einer nicht übereinstimmenden Datei?

Ich versuche mit grep Dateien zu finden, die ein bestimmtes Wort enthalten . Es gibt viele Dateien im Verzeichnis (> 500)

Befehl, den ich ausführe

$ grep 'delete' *

Ausgabe

validate_data_stage1:0
validate_data_stage2:0
validate_data_stage3:0
validate_data_stage4:0
validate_data_stage5:0
validate_input_stage1:0
validate_input_stage2:0
validate_input_stage3:0
validate_input_stage4:0
.... and hundred of such lines

Dies sind die Dateien, die die angegebene Übereinstimmung nicht enthalten. Ich möchte unterdrücken, dass diese Zeilen in stdout angezeigt werden. Ich kenne -q umschalten, aber das würde die komplette Ausgabe unterdrücken, was ich nicht will.

Wie mache ich das?

Akzeptierte Antwort:

Das ist das Verhalten von grep -c .

Wahrscheinlich haben Sie eine Datei, deren Name mit - beginnt und enthält ein c Zeichen und Sie verwenden GNU grep, ohne den POSIXLY_CORRECT festzulegen Umgebungsvariable.

Verwendung:

grep -- delete *

oder besser:

grep delete ./*

-- markiert das Ende von Optionen, sodass dieser Dateiname nicht als Option betrachtet wird (bei einem POSIX-Grep würde dies nicht der Fall sein, da die Nicht-Option delete hätte das Ende von Optionen markiert), aber es würde das Problem einer Datei namens - nicht lösen . Das grep delete ./* ist robuster, hat aber den Nachteil, dass das zusätzliche ./ ausgegeben wird für übereinstimmende Dateien (obwohl dies als Bonus angesehen werden kann, da dies hilft, Dateinamen zu identifizieren, die Zeilenumbruchzeichen enthalten).


Linux
  1. Wie grep ich rekursiv?

  2. Wie grep \n in Datei

  3. Wie zeige ich eine Liste der laufenden Prozesse Python an?

  4. Wie kann ich den Dateiinhalt rekursiv anzeigen?

  5. Wie man einen Abschnitt einer Datei in der Bash-Shell grep

So verschieben Sie eine Datei unter Linux

So schließen Sie in Grep aus

So erstellen Sie eine Datei unter Linux

So finden Sie eine Zeichenfolge in einer Datei unter Linux

So zeigen Sie Daten aus einer Textdatei in Linux an

Wie stellt man eine entfernte Datei unter Linux wieder her?