2016-09-16 3 views
1

In bash, wie listet man Dateien auf, die KEINE Zeichenfolge enthalten?Listet Dateien auf, die kein Muster enthalten


Da

grep --include=*.c -rlw './' -e "pattern" 

Rückkehr jede Datei, die dem Muster entspricht Ich hatte erwartet, dass

grep --include=*.c -rlwv './' -e "pattern" 

jede Datei zurückkehren würde, die nicht das Muster passt, aber es gibt nur alle *.c Dateien unabhängig davon, ob sie dem Muster entsprechen.

+0

Dieser Befehl ist für mich adaequat – anubhava

+1

'-V' bedeutet Linien zu entsprechen, die enthält das Muster nicht. Ihr Befehl listet alle Dateien auf, die eine Zeile enthalten, die nicht mit dem Muster übereinstimmt. Es bedeutet nicht, dass ** keine ** Zeilen dem Muster entsprechen. – Barmar

+0

Die einzigen Dateien, die vom Ergebnis ausgeschlossen würden, wären solche, bei denen ** alle ** Zeilen mit dem Muster übereinstimmen. – Barmar

Antwort

3

Sie können versuchen, -L-Option zu verwenden:

grep -L -r -i --include \*.c "pattern" ./ 
0

können Sie Option -v verwenden auch

grep -v -rwl "pattern" 
Verwandte Themen