So verwenden Sie Vergleichsbetreiber mit awk unter Linux - Teil 4

So verwenden Sie Vergleichsbetreiber mit awk unter Linux - Teil 4

Wenn Sie sich mit numerischen oder Stringwerten in einer Textzeile befassen, ist das Filtern von Text oder Zeichenfolgen mit Vergleichsbetreibern nützlich für Awk Befehlsnutzer.

In diesem Teil der AWK -Serie werden wir uns ansehen, wie Sie Text oder Zeichenfolgen mit Vergleichsbetreibern filtern können. Wenn Sie ein Programmierer sind, müssen Sie bereits mit Vergleichsbetreibern vertraut sein, aber diejenigen, die dies nicht sind, lassen Sie mich im Abschnitt unten erklären.

Was sind Vergleichsbetreiber in awk?

Vergleichsbetreiber in awk werden verwendet, um den Wert von Zahlen oder Zeichenfolgen zu vergleichen, und diese enthalten Folgendes:

  1. > - größer als
  2. < - weniger als
  3. > = - größer als oder gleich wie
  4. <= - Gleich oder kleiner als
  5. == - gleich
  6. != - Nicht gleichzusetzen mit
  7. SOLE_VALUE ~ / MUSTER / - true, wenn einige_Value das Muster übereinstimmen
  8. SONDER_VALUE !~ / muster / - true, wenn einstValue nicht übereinstimmt, das Muster übereinstimmt

Nachdem wir uns die verschiedenen Vergleichsbetreiber in awk angesehen haben, lassen Sie uns sie besser mit einem Beispiel verstehen.

In diesem Beispiel haben wir eine Datei mit dem Namen food_list.txt Welches ist eine Einkaufsliste für verschiedene Lebensmittel, und ich möchte Lebensmittel markieren, deren Menge weniger als oder gleich 20 ist, indem Sie hinzugefügt werden (**) am Ende jeder Zeile.

Datei - food_list.txt
NO item_name Mengenpreis 1 Mangos 45 $ 3.45 2 Äpfel 25 $ 2.45 3 Ananas 5 $ 4.45 4 Tomaten 25 $ 3.45 5 Zwiebeln 15 $ 1.45 6 Bananen 30 $ 3.45 

Die allgemeine Syntax für die Verwendung von Vergleichsbetreibern in awk ist:

# Ausdruck Aktionen;  

Um das obige Ziel zu erreichen, muss ich den folgenden Befehl ausführen:

# awk '$ 3 30 drucken $ 0;' food_list.txt No item_name 'Mengenpreis 1 Mangos 45 $ 3.45 2 Äpfel 25 $ 2.45 ** 3 Ananas 5 $ 4.45 ** 4 Tomaten 25 $ 3.45 ** 5 Zwiebeln 15 $ 1.45 ** 6 Bananen 30 $ 3.45 ** 

Im obigen Beispiel gibt es zwei wichtige Dinge, die passieren:

  1. Der erste Ausdruck Aktion ; Kombination, $ 3 <= 30 printf "%s \ t%s \ n", $ 0, "**"; druckt Linien mit einer Menge weniger als oder gleich 30 und fügt a hinzu (**) am Ende jeder Zeile. Auf den Wert der Menge wird mithilfe der Menge zugegriffen $ 3 Feldvariable.
  2. Der zweite Ausdruck Aktion ; Kombination, $ 3> 30 Druck $ 0; druckt Linien unverändert, da ihre Menge größer ist 30.

Noch ein Beispiel:

# awk '$ 3 20 drucken $ 0;' food_list.txt  NO item_name Mengenpreis 1 Mangos 45 $ 3.45 2 Äpfel 25 $ 2.45 3 Ananas 5 $ 4.45 True 4 Tomaten 25 $ 3.45 5 Zwiebeln 15 $ 1.45 True 6 Bananen 30 $ 3.45 

In diesem Beispiel möchten wir Linien mit weniger oder gleicher Anmeldung angeben 20 mit dem Wort (WAHR) Am Ende.

Zusammenfassung

Dies ist ein Einführungs -Tutorial für Vergleichsbetreiber in Awk, Daher müssen Sie viele andere Optionen ausprobieren und mehr entdecken.

Wenn Sie Probleme haben, mit denen Sie konfrontiert sind, oder bei Ergänzungen, die Sie im Sinn haben, geben Sie einen Kommentar im Kommentarbereich unten unten. Denken Sie daran, den nächsten Teil der AWK -Serie zu lesen, in dem ich Sie durch zusammengesetzte Ausdrücke führen werde.