Finden Sie Dateien, die nicht enthalten einen string
Alle Dateien finden, die "foo" im aktuellen Ordner, die ich benutze:
grep -r "foo" .
Alle Dateien finden, die "bar" im aktuellen Ordner, die ich benutze:
grep -r "bar" .
Aber, wie alle Dateien zu finden, die nicht enthalten 'foo' und 'bar'?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Drucken Linien, die nicht enthalten einen string verwenden Sie die
-v
Flagge:Dieser gibt dir alle Zeilen, die nicht enthalten
foo
oderbar
.Drucken Dateien, die nicht enthalten einen string verwenden Sie die
-L
Flagge. Zu non-match mehrere Zeichenfolgen, Sie können reguläre Ausdrücke verwenden, mit der-P
- Flagge (es gibt mehrere regex-flags, die Sie verwenden können):Dieser druckt eine Liste der Dateien, die nicht enthalten
foo
oderbar
.Dank Anton Kovalenko für den Hinweis.
-v
ist über die nicht-übereinstimmenden Zeilen vorhanden sind, nicht über passende Zeilen fehlen.-r
im Rohr. Für die "non-matching lines", das ist es, was der OP fragt nach:grep -v "foo"
goves Linien, die nicht mitfoo
.Versuchen, diese:
Rekursiv Verzeichnisse nach allen Dateien, die nicht enthält XYZ
Mit awk, so etwas wie:
Grundsätzlich liest jede Eingabe-Datei, und wenn Sie sieht, dass Ihre
SEARCHSTRING
(die regex), es speichert diese info. Nach beenden der aktuellen Datei (oder nach der letzten Datei), prüfen Sie, ob es etwas gefunden, und wenn dem so ist, drucken Sie die vorherigen Dateinamen.Versuchen Sie, die unten. diese Arbeit sollte