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

Wie finde ich alle Dateien, die keine Textzeichenfolge enthalten?

Was prägnant Befehl kann ich verwenden, um alle Dateien zu finden, die KEINE Textzeichenfolge enthalten?

Ich habe dies (mit -v zum Invertieren der grep-Parameter) ohne Erfolg versucht:

find . -exec grep -v -l shared.php {} ;

Jemand sagte, das würde funktionieren:

find . ! -exec grep -l shared.php {} ;

Aber es scheint bei mir nicht zu funktionieren.

Diese Seite hat dieses Beispiel:

find ./logs -size +1c  > t._tmp
while read filename
do
     grep -q "Process Complete" $filename
     if [ $? -ne 0 ] ; then
             echo $filename
     fi
done < t._tmp
rm -f t_tmp

Aber das ist umständlich und überhaupt nicht prägnant.

ps:Ich kenne das grep -L * wird dies tun, aber wie kann ich den find-Befehl in Kombination mit grep verwenden, um ausgeschlossene Dateien zu finden, ist das, was ich wirklich wissen möchte.

pss:Ich bin mir auch nicht sicher, wie grep Unterverzeichnisse mit grep -L * einschließen soll Syntax, aber ich möchte trotzdem wissen, wie man sie mit find verwendet 🙂

Akzeptierte Antwort:

find . -type f | xargs grep -H -c 'shared.php' | grep 0$ | cut -d':' -f1    

ODER

find . -type f -exec grep -H -c 'shared.php' {} ; | grep 0$ | cut -d':' -f1

Hier berechnen wir die Anzahl der übereinstimmenden Zeilen (mit -c ) in einer Datei, wenn die Anzahl 0 ist, dann ist es die erforderliche Datei, also schneiden wir die erste Spalte, d. h. Dateiname, aus der Ausgabe.


Linux
  1. Linux-Befehl:Wie findet man nur Textdateien?

  2. Wie finde ich Textdateien, die keinen Text unter Linux enthalten?

  3. Wie man alle Dateien in allen Unterverzeichnissen in Bash gzippt

  4. Wie finde ich unter Linux alle Dateien, die bestimmten Text enthalten?

  5. Wie finde ich alle fest verlinkten Dateien in einem Dateisystem?

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

Grep-Befehl in Linux (Text in Dateien suchen)

So finden Sie eine Zeichenfolge in einer Datei unter Linux

So finden Sie Dateien, die eine bestimmte Textzeichenfolge in Linux enthalten

Finden Sie Text in Dateien unter Linux mit grep

Wie bekomme ich Zeilen, die eine Zeichenfolge in einer Datei enthalten?