Wie man ein Wort mit grep ausschließt

Inhaltsverzeichnis:

Anonim

Das Befehlszeilentool grep ist äußerst nützlich, um Textdaten nach Zeilen und Schnipseln zu durchsuchen, die mit einer definierten Zeichenfolge, einem Zeichen, einem Wort oder einem regulären Ausdruck übereinstimmen. Während die meisten Anwendungen von grep zum Sortieren von Daten für Syntaxübereinstimmungen dienen, was ist, wenn Sie stattdessen ein Wort oder eine Zeichenfolge mit grep ausschließen möchten? Das Ausschließen von Zeilenübereinstimmungen mit grep ist genauso nützlich wie das Suchen und Drucken von Übereinstimmungen in grep. Lassen Sie uns also behandeln, wie Sie Zeichenfolgenübereinstimmungen und Wörter mit grep ausschließen.

Natürlich sollten Sie etwas Erfahrung mit der Befehlszeile haben und mit grep vertraut sein, um dies nützlich zu finden. Wenn Sie mitmachen möchten, können Sie die Terminal-Anwendung öffnen und selbst ausprobieren. Da grep ein betriebssystemunabhängiges Dienstprogramm ist, können Sie den Exclude-Trick in Mac OS, Linux, Unix oder was auch immer Sie haben, verwenden, das grep verwendet.

Wie man ein einzelnes Wort mit grep ausschließt

Der einfachste Weg, Zeilen mit einer Zeichenfolgen- oder Syntaxübereinstimmung auszuschließen, ist die Verwendung von grep und dem Flag -v.

Nehmen wir zum Beispiel an, wir verwenden cat, um eine Datei auf der Befehlszeile zu drucken, aber wir möchten alle Zeilen ausschließen, die den Begriff „DiesesWort“ enth alten, dann würde die Syntax wie folgt aussehen:

"

Katze Beispiel.txt | grep -v DiesesWort"

Die Ausgabe ist die Textdatei example.txt, jedoch ohne alle Zeilen, die eine Zeichenfolgenübereinstimmung mit „ThisWord“ enth alten.

Sie können grep auch direkt auf Dateien anwenden und Zeilenübereinstimmungen basierend auf Wörtern oder Syntax ausschließen, wie folgt:

"

grep -v DiesesWort>"

Verwenden Sie, was für Ihren speziellen Arbeitsablauf am besten geeignet ist.

So schließen Sie mehrere Zeichenfolgen oder Wörter mit grep aus

Da Sie nun wissen, wie man Übereinstimmungen für ein einzelnes Wort ausschließt, ist die nächste offensichtliche Frage das Ausschließen mehrerer Wörter mit grep. Das ist genauso einfach, und es gibt verschiedene Möglichkeiten, dies mit dem Flag -v und dem Flag -e zu erreichen.

Als erstes nehmen wir das obige Beispiel der Verwendung von cat in einer Datei, die an grep geleitet wird, und schließen alle Zeilen aus, die zwei Wörtern entsprechen; „Wort1“ und „Wort2“, das würde wie folgt aussehen:

"

Katze Beispiel.txt | grep -v -e Wort1 -e Wort2"

Alle Zeilen, die „Wort1“ oder „Wort2“ enth alten, werden von den gedruckten Ergebnissen ausgeschlossen.

Sie können grep auch wie zuvor direkt auf Dateien anwenden:

"

grep -v -e Wort1 -e Wort2 example.txt"

Ein anderer Ansatz besteht darin, mit grep zu trennen, was ausgeschlossen werden soll, indem Sie eine Pipe verwenden, um jede Übereinstimmung zu trennen, etwa so:

"

grep -Ev Wort1|Wort2 Beispiel.txt"

Wenn Sie eine dieser Optionen an einer Beispieltextdatei testen, werden Sie feststellen, dass die Ausgabe unabhängig von der von Ihnen gewählten Herangehensweise identisch ist, wobei jede Zeile ausgenommen ist, die die Zielphrasen, -syntax, -wörter oder enthält Textübereinstimmung.

Großartig, zeigen Sie mir ein nützliches Beispiel zum Ausschließen von Daten mit grep!

Für ein praktisches Beispiel, das fortgeschrittene Mac-Benutzer möglicherweise hilfreich finden, können wir beim Drucken und Abfragen des Befehlszeilenverlaufs den grep-Ausschluss verwenden, um zuvor ausgeführte Befehle zu finden, um Standardübereinstimmungen zu finden, aber einige ausgewählte Standardzeichenfolgen aus der Ausgang.

Im Beispiel hier drucken wir den Befehlsverlauf für Übereinstimmungen mit Standardzeichenfolgen, schließen jedoch alle Übereinstimmungen aus, die mit iTunes zu tun haben, wie von „com.apple.itunes“ definiert:

"

history |grep defaults write |grep -v -e com.apple.itunes"

Wenn Sie also mitverfolgt haben, würde dies alle historischen Ausführungen des Befehls „defaults write“ zurückmelden, aber alles ausschließen, was sich auf die iTunes-Anwendung bezog. Schön, oder?

Wenn Sie besonders praktische Anwendungen zum Ausschließen von Übereinstimmungen mit grep haben, teilen Sie sie uns in den Kommentaren unten mit! Und wenn Ihnen dieser Artikel gefallen hat, möchten Sie mit ziemlicher Sicherheit gerne unsere vielen Befehlszeilenartikel hier durchstöbern, in denen es noch viel mehr zu lernen gibt!

Wie man ein Wort mit grep ausschließt