So verwenden Sie zusammengesetzte Ausdrücke mit awk unter Linux - Teil 5

So verwenden Sie zusammengesetzte Ausdrücke mit awk unter Linux - Teil 5

Die ganze Zeit über haben wir einfache Ausdrücke untersucht, wenn wir überprüfen, ob ein Zustand erfüllt wurde oder nicht. Was ist, wenn Sie mehr verwenden möchten, als ein Ausdruck, der nach einem bestimmten Zustand in einem bestimmten Zustand prüft?

In diesem Artikel werden wir uns ansehen, wie Sie mehrere Ausdrücke als zusammengesetzte Ausdrücke kombinieren können.

In Awk, zusammengesetzte Ausdrücke werden mit dem gebaut && bezeichnet als (Und) und das || bezeichnet als (oder) zusammengesetzte Operatoren.

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

(First_expression) && (Second_expression) 

Hier, First_expression Und Second_expression muss treu sein, um den ganzen Ausdruck wahr zu machen.

(First_expression) || (Second_expression) 

Hier auch einer der Ausdrücke First_expression oder Second_expression Muss zutreffen, damit der gesamte Ausdruck wahr ist.

Vorsicht: Denken Sie daran, immer die Klammer aufzunehmen.

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

Lassen Sie uns jetzt ein klares Verständnis mit einem Beispiel unten erhalten:

In diesem Beispiel haben a eine Textdatei mit dem Namen tecmint_deals.txt, Dies enthält eine Liste einiger fantastischer zufälliger Tecmint -Angebote. Es enthält den Namen des Deals, den Preis und den Typ.

Tecmint -Dealliste
Kein Name Preis Typ 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 Unbekannt 5 nano_tool_pack $ 11.99 Unbekannt 6 Ditto_Bluetooth_Agertering_Device $ 33.00 Tech 7 Nano_Prowler_Mini_Drone $ 36.99 Tech 

Sagen Sie, dass wir nur drucken und flaggen möchten, die oben sind $ 20 und vom Typ "Technik" Verwendung der (**) unterschreiben am Ende jeder Zeile.

Wir müssen den Befehl unten ausführen.

# awk '($ 3 ~ /^$ [2-9] [0-9]*\.[0-9] [0-9] $/) && ($ 4 == "Tech") printf "%s \ t%s \ n", $ 0, "*";  'tecmint_deals.txt  6 DITO_BLUETOOTH_AUTERING_DEVICE $ 33.00 Technik * 7 Nano_Prowler_Mini_Drone $ 36.99 Technik * 

In diesem Beispiel haben wir zwei Ausdrücke in einem zusammengesetzten Ausdruck verwendet:

  1. Erster Ausdruck, ($ 3 ~ /^\ $ [2-9] [0-9]*\.[0-9] [0-9] $/) ; Überprüft die für Linien mit dem obigen Preis mit dem Preis $ 20, und es ist nur dann wahr, wenn der Wert von $ 3 Welches ist der Preis entspricht dem Muster /^\ $ [2-9] [0-9]*\.[0-9] [0-9] $/
  2. Und der zweite Ausdruck, ($ 4 == "Tech") ; Überprüft, ob das Geschäft vom Typ ist "Technik" und es ist nur dann wahr, wenn der Wert von $ 4 ist gleich "Technik".

Denken Sie daran, eine Linie wird nur mit dem gekennzeichnet (**), Wenn erster Ausdruck Und Zweiter Ausdruck sind wahr, wenn der Prinzip der && Operator.

Zusammenfassung

Einige Bedingungen erfordern immer den Bau von zusammengesetzten Ausdrücken, damit Sie genau das übereinstimmen, was Sie wollen. Wenn Sie die Verwendung von Vergleichs- und zusammengesetzten Expressionsoperatoren verstehen, wird es einfach, Text oder Zeichenfolgen basierend auf schwierigen Bedingungen zu filtern.

Ich hoffe, Sie finden diesen Leitfaden nützlich und für Fragen oder Ergänzungen können Sie immer einen Kommentar hinterlassen, und Ihr Anliegen wird entsprechend gelöst.