Heim > Artikel > System-Tutorial > So verwenden Sie Vergleichsoperatoren in awk
Für Benutzer, die den Befehl awk verwenden, ist es bei der Verarbeitung von Zahlen oder Zeichenfolgen in einer Textzeile sehr praktisch, Vergleichsoperatoren zum Filtern von Text und Zeichenfolgen zu verwenden. Im folgenden Abschnitt stellen wir die Vergleichsoperatoren von „awk“ vor.
Was sind die Vergleichsoperatoren in awk?
Vergleichsoperatoren in awk werden zum Vergleichen von Zeichenfolgen und numerischen Werten verwendet, einschließlich der folgenden Typen:
Symbolfunktion
<
>= Größer als oder gleich
<= kleiner oder gleich
== Gleich
!= ist nicht gleich
some_value ~ /pattern/ Gibt true zurück, wenn some_value mit dem Mustermuster
übereinstimmtsome_value !~ / pattern/ Gibt true zurück, wenn some_value nicht mit dem Muster übereinstimmt. Machen wir uns nun anhand von Beispielen mit den verschiedenen Vergleichsoperatoren in awk vertraut.
Beispiel 1: Wir haben eine Datei namens food_list.txt, die Einkaufslisten verschiedener Lebensmittel enthält. Ich möchte (**)
nach der Zeile der Artikel hinzufügen, deren Lebensmittelmenge kleiner oder gleich 30 istDatei – food_list.txt
Kein Item_Name Menge Preis
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 Vergleichsoperatoren in Awk lautet wie folgt:
# Ausdruck { Aktion }
Um den Zweck gerade zu erreichen, führen Sie den folgenden Befehl aus:
# awk '$3 <= 30 { printf "%s/t%s/n", $0,"**" } $3 > 30 { print $0 ;}' food_list.txt
Kein Artikelname` 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 Beispiel gerade sind die folgenden zwei wichtigen Dinge passiert:
In der ersten „expression{action;}“-Kombination gibt $3 <= 30 { printf "%s/t%s/n", $0,"**" } die Zahl aus, die kleiner oder gleich ist 30 Zeile und fügen Sie am Ende (**) hinzu. Die Menge des Artikels wird über die Feldvariable $3 ermittelt. In der zweiten „expression {action;}“-Kombination gibt $3 > 30 { print $0 ;} die Zeilen unverändert aus, deren Anzahl kleiner oder gleich 30 ist. Noch ein Beispiel:
# awk '$3 <= 20 { printf "%s/t%s/n", $0,"TRUE" } $3 > 20 { print $0 ;} ' food_list.txt
Kein Item_Name Mengenpreis
1 Mangos 45 3,45 $
2 Äpfel 25 $2,45
3 Ananas 5 $4,45 RICHTIG
4 Tomaten 25 3,45 $
5 Zwiebeln 15 $1,45 RICHTIG
6 Bananen 30 $3,45
In diesem Beispiel möchten wir Zeilen mit einer Anzahl kleiner oder gleich 20 markieren, indem wir (TRUE) am Ende der Zeile hinzufügen.
ZusammenfassungDies ist eine Einführung in die Vergleichsoperatoren in awk. Sie müssen also andere Optionen ausprobieren und weitere Verwendungsmöglichkeiten entdecken.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Vergleichsoperatoren in awk. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!