Ich versuche mit, Dateien zu finden, die ein bestimmtes Wort enthalten grep
. 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 nicht die angegebene Übereinstimmung enthalten. Ich möchte verhindern, dass diese Zeilen in stdout angezeigt werden. Ich kenne -q
Switch, aber das würde die gesamte Ausgabe unterdrücken, was ich nicht will.
Wie mache ich das?
grep 'delete' * -R
, aber ich glaube nicht, dass -R
es Probleme gibt. Und ja, normalerweise werden die nicht übereinstimmenden nicht gedruckt, aber nicht sicher, was hier der Fall ist ...
grep -- 'delete' *
(hinzugefügt --
) und es hat wie erwartet funktioniert. Das Entfernen von --
führt zur obigen Anzeige.
-ci
. Vielen Dank, dass Sie das Problem behoben haben. Sie können dieses Szenario als Antwort veröffentlichen.
grep
sollten Dateinamen nicht übereinstimmender Dateien nicht ausgedruckt werden. Eigentlich sieht es so aus,grep
als würde eine Zeile mit dem Inhalt0
übereinstimmen. Können Sie das genaue Suchmuster veröffentlichen, das Sie verwenden?