645 Stimmen

Wie kann ich ein Wort mit grep ausschließen?

Ich brauche etwas wie:

grep ^"unwanted_word"XXXXXXXX

7voto

Shriganesh Shintre Punkte 2210

Grep bietet die Option '-v' oder '--invert-match', um nicht übereinstimmende Zeilen auszuwählen.

z.B..

grep -v 'unwanted_pattern' file_name

Dies gibt alle Zeilen aus der Datei Dateiname aus, die nicht den Wert 'unwanted_pattern' haben.

Wenn Sie das Muster in mehreren Dateien innerhalb eines Ordners suchen, können Sie die rekursive Suchoption wie folgt verwenden

grep -r 'wanted_pattern' * | grep -v 'unwanted_pattern'

Hier wird grep versuchen, alle Vorkommen von 'wanted_pattern' in allen Dateien des aktuellen Verzeichnisses aufzulisten und sie an ein zweites grep zu übergeben, um die 'unwanted_pattern' herauszufiltern. Mit '|' - pipe wird die Shell angewiesen, die Standardausgabe des linken Programms (grep -r 'wanted_pattern' *) mit der Standardeingabe des rechten Programms (grep -v 'unwanted_pattern') zu verbinden.

5voto

st0le Punkte 32967

El -v werden alle Zeilen angezeigt, die nicht mit dem Muster übereinstimmen.

grep -v ^unwanted_word

0voto

Ich habe den Root-Einhängepunkt ("/") ausgeschlossen, indem ich grep -vw "^/" .

# cat /tmp/topfsfind.txt| head -4 |awk '{print $NF}'
/
/root/.m2
/root
/var

# cat /tmp/topfsfind.txt| head -4 |awk '{print $NF}' | grep -vw "^/"
/root/.m2
/root
/var

-4voto

pjrieger Punkte 11

Ich habe ein Verzeichnis mit einer Reihe von Dateien. Ich möchte alle Dateien finden, die NICHT die Zeichenfolge "speedup" enthalten, also habe ich erfolgreich den folgenden Befehl verwendet:

grep -iL speedup *

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X