
grep -l "this is a test"
listet alle Dateien auf, $pwd
die die angegebene Zeichenfolge enthalten. Aber
grep -vl "this is a test"
listet alle Dateien auf, einschließlich dieser, da die Dateien, die diese Zeichenfolge enthalten, auch Zeilen ohne diese Zeichenfolge enthalten.
Ich könnte eine Liste der ersten Gruppe erstellen und dann alle Dateien im Verzeichnis auflisten, die nicht auf dieser Liste stehen, aber gibt es einen einfacheren Weg? Normalerweise verwende ich bash
, aber ich kann csh
auch zu oder wechseln perl
, wenn es helfen würde.
Antwort1
Fgrep -o -r -i -L string * -o meldet nur die Datei -r rekursiv in Unterverzeichnisse -i ohne Berücksichtigung der Groß-/Kleinschreibung -L, --files-without-match Unterdrückt die normale Ausgabe; druckt stattdessen den Namen jeder Eingabedatei, von der normalerweise keine Ausgabe gedruckt worden wäre. Der Scan wird bei der ersten Übereinstimmung angehalten.