Website-Suche

Wie man zusammengesetzte Ausdrücke mit Awk in Linux verwendet - Teil 5


Die ganze Zeit haben wir uns mit einfachen Ausdrücken beschäftigt, wenn es darum geht, zu überprüfen, ob eine Bedingung erfüllt ist oder nicht. Was ist, wenn Sie mehr als einen Ausdruck verwenden möchten, um nach einer bestimmten Bedingung zu suchen?

In diesem Artikel werfen wir einen Blick darauf, wie Sie mehrere Ausdrücke kombinieren können, die als zusammengesetzte Ausdrücke bezeichnet werden, um beim Filtern von Text oder Zeichenfolgen nach einer Bedingung zu suchen.

Zusammengesetzte Ausdrücke in awk

In Awk werden zusammengesetzte Ausdrücke mit den Operatoren && erstellt, die als (und) bezeichnet werden, und den || als zusammengesetzte Operatoren, die als (oder) bezeichnet werden.

Die allgemeine Syntax für zusammengesetzte Ausdrücke lautet:

expression1 && expression2

Die obige Syntax stellt eine logische UND-Operation dar, bei der sowohl Ausdruck1 als auch Ausdruck2 wahr sein müssen, damit der Gesamtausdruck wahr ist.

Auf ähnliche Weise können Sie den || -Operator für einen logischen OR-Vorgang verwenden.

expression1 || expression2

Hier ist einer der Ausdrücke entweder Ausdruck1 oder Ausdruck2 muss wahr sein, damit der gesamte Ausdruck wahr ist.

Die Ausdrücke können mit den Vergleichsoperatoren erstellt werden, die wir uns in Teil 4 der awk-Serie angesehen haben.

In diesem Artikel untersuchen wir anhand praktischer Beispiele, wie Sie zusammengesetzte Ausdrücke mit Awk unter Linux verwenden.

Beispiel-Datei

In diesem Beispiel haben wir eine Textdatei mit dem Namen tecmint_deals.txt, die eine Liste einiger erstaunlicher zufälliger Tecmint-Angebote enthält, die den Namen des Angebots, den Preis und den Typ enthält.

No   Name                                  Price     Type
1    Mac_OS_X_Cleanup_Suite                $9.99     Software
2    Basics_Notebook                       $14.99    Lifestyle
3    Tactical_Pen                          $25.99    Lifestyle
4    Scapple                               $19.00    Unknown
5    Nano_Tool_Pack                        $11.99    Unknown
6    Ditto_Bluetooth_Altering_Device       $33.00    Tech
7    Nano_Prowler_Mini_Drone               $36.99    Tech

Beispiel 1: Filtern nach Preisspanne

Angenommen, wir möchten Produkte mit einem Preis zwischen 10 und 20 US-Dollar filtern, können wir einen zusammengesetzten Ausdruck in Awk verwenden, wie gezeigt.

awk '$3 >= 10 && $3 <= 20 { print $0 }' tecmint_deals.txt

Beispiel-Ausgabe:

1    Mac_OS_X_Cleanup_Suite                $9.99     Software
4    Scapple                               $19.00    Unknown
5    Nano_Tool_Pack                        $11.99    Unknown

Beispiel 2: Kombinieren von Bedingungen

Nehmen wir an, wir möchten Produkte filtern, die entweder vom Typ "Software" oder "Tech" sind. Wir können den logischen ODER-Operator (||) in unserem zusammengesetzten Ausdruck verwenden.

awk '$4 == "Software" || $4 == "Tech" { print $0 }' tecmint_deals.txt

Beispiel-Ausgabe:

1    Mac_OS_X_Cleanup_Suite                $9.99     Software
6    Ditto_Bluetooth_Altering_Device       $33.00    Tech
7    Nano_Prowler_Mini_Drone               $36.99    Tech

Beispiel 3: Kombination von Bedingungen

Kombinieren wir nun sowohl die Preis- als auch die Typenbedingungen. Angenommen, wir möchten Produkte filtern, die einen Preis von unter 20 US-Dollar haben und vom Typ "Unbekannt" sind. Wir können dies tun, indem wir zwei Bedingungen mit dem logischen AND-Operator (&&) kombinieren:

awk '$3 < 20 && $4 == "Unknown" { print $0 }' tecmint_deals.txt

Beispiel-Ausgabe:

1    Mac_OS_X_Cleanup_Suite                $9.99     Software
5    Nano_Tool_Pack                        $11.99    Unknown

Beispiel 4: Negieren von Bedingungen

Nehmen wir schließlich an, wir möchten Produkte vom Typ "Lifestyle" ausschließen. Wir können dies erreichen, indem wir die Bedingung mit dem logischen NOT-Operator (!) negieren:

awk '$4 != "Lifestyle" { print $0 }' tecmint_deals.txt

Beispiel-Ausgabe:

1    Mac_OS_X_Cleanup_Suite                $9.99     Software
4    Scapple                               $19.00    Unknown
5    Nano_Tool_Pack                        $11.99    Unknown
6    Ditto_Bluetooth_Altering_Device       $33.00    Tech
7    Nano_Prowler_Mini_Drone               $36.99    Tech
Zusammenfassung

Einige Bedingungen erfordern immer das Erstellen von zusammengesetzten Ausdrücken, die genau dem entsprechen, was Sie möchten. Wenn Sie die Verwendung von Vergleichs- und zusammengesetzten Ausdrucksoperatoren verstehen, wird das Filtern von Text oder Zeichenfolgen basierend auf einigen schwierigen Bedingungen einfach.

Für diejenigen, die eine umfassende Ressource suchen, haben wir alle Artikel der Awk-Serie in einem Buch zusammengestellt, das 13 Kapitel umfasst und sich über 41 Seiten erstreckt und sowohl die grundlegende als auch die fortgeschrittene Verwendung von Awk mit praktischen Beispielen abdeckt.

ProduktnamePreisKaufen
E-Book: Einführung in den AWK-Leitfaden für Anfänger8,99 $[Jetzt kaufen]

Ich hoffe, Sie finden diesen Leitfaden nützlich und denken Sie bei Fragen oder Ergänzungen immer daran, einen Kommentar zu hinterlassen, und Ihr Anliegen wird entsprechend gelöst.

Verwandte Artikel: