Awk

So verwenden Sie die for-Schleife im Befehl awk

So verwenden Sie die for-Schleife im Befehl awk
Loop wird verwendet, um einige Anweisungen mehrmals auszuführen. Die Iteration der Schleife basierend auf der Abbruchbedingung oder der Anzahl der Array-Elemente. Drei Arten von Schleifen werden von jeder Programmiersprache unterstützt. For-Schleife ist eine davon. Die For-Schleife kann auf zwei Arten deklariert werden. Einfache for-Schleife enthält drei Teile.  Und eine weitere for-Schleife ist die for-in-Schleife, die verwendet wird, um eine beliebige Liste von Daten oder Arrays zu durchlaufen. Dieses Tutorial zeigt die Verwendung dieser beiden Schleifentypen im Befehl awk anhand verschiedener Beispiele.

Syntax:

  1. for-Schleife-Deklaration:
for (Initialisierung; Abbruchbedingung; Inkrement/Dekrement)
Aussagen

Der erste Teil wird verwendet, um die Variable zum Starten zu initialisieren zum Schleife. Der zweite Teil enthält die Beendigungsbedingung, um die Iteration der Schleife zu steuern, und die Schleife wird fortgesetzt, bis die Bedingung wahr ist. Der letzte Teil erhöht oder verringert die Initialisierungsvariable basierend auf dem ersten Teil.

  1. for-in-Erklärung
for (Variable in Array/Liste)
Aussagen

für in Schleife wird verwendet, um Aufgaben auszuführen, bei denen die Anzahl der Iterationen der Schleife nicht festgelegt ist. für in Schleife wird hauptsächlich verwendet, um ein Array oder eine Liste von Daten zu analysieren. Die Schleife liest alle Daten aus dem Array oder der Liste und speichert den Wert in jeder Iteration in einer Variablen.

Beispiel-1: Einfache for-Schleife verwenden

Im folgenden Skript wird eine einfache for-Schleife verwendet. Hier, Zähler Variable wird mit 10 initialisiert und die Schleife wird beendet, wenn der Wert von Zähler ist weniger als 5. Das Skript druckt die Zähler Werte von 10 bis 5. Führen Sie den Befehl über das Terminal aus.

$ echo | awk ' for (Zähler = 10; Zähler >= 5; Zähler--)
print "Läuft für ",counter," Zeiten.","\n"; '

Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung des Befehls.

Beispiel-2: Verwenden einer for-in-Schleife zum Lesen eines Arrays

Im folgenden Skript wird ein Array mit dem Namen Customer deklariert, in dem das des Kunden Ich würde als Array-Index gesetzt wird und der Kunden Name wird als Array-Wert gesetzt. für in Schleife wird hier verwendet, um jeden Index aus dem Array zu iterieren und den Namen des Kunden auszugeben. Führen Sie das Skript über das Terminal aus.

$ echo | awk 'BEGIN Kunde["4587"] = "Neil Johnson";
Kunde["8953"] = "Ella binte Nazir";
Kunde["3455"] = "Bruce Hyslop";
Kunde["6335"] = "Isabella";
 
ENDE für (i in Kunde)
print  "Der Name von ", i, " ist " ,Kunde[i]
'

Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung des Skripts.

Beispiel-3: Verwendung einer verschachtelten for-Schleife

Wenn eine for-Schleife unter einer anderen for-Schleife deklariert wird, heißt sie verschachtelte for-Schleife. Die äußere Schleife, die in diesem Skript verwendet wird, wird 2 Mal durchlaufen und die innere Schleife wird 3 Mal durchlaufen. Die print-Anweisung wird also für (2X3=6) 6-mal ausgeführt. Führen Sie das Skript über das Terminal aus.

$ echo | awk 'END for (i=1; i<=2; i++)
für (j=1; j<=3; j++)
print  "Iterierende Zeile ", i" und Spalte ", j,"\n";'

Ausgabe:

Die folgende Ausgabe erscheint nach dem Ausführen des Skripts.

Beispiel-4: for-Schleife mit break-Anweisung verwenden

Unterbrechung -Anweisung wird in jeder Schleife verwendet, um die Schleife zu beenden, bevor die Beendigungsbedingung basierend auf der bestimmten Bedingung erreicht wird. Im folgenden Skript beginnt die for-Schleife bei 3 und endet, wenn der Wert von ich ist größer als 20. Aber wenn der Wert von ich wird gleich der Variablen num dann wird die if-Bedingung wahr und die Schleife endet für die Unterbrechung Aussage.

$ echo | awk 'BEGINN num=7; ENDE für (i=3; i<=20; i++)
if( i == num) Pause;
sonst
print  "Aktueller Wert von i =",i ,"\n";'

Ausgabe:

Wenn hier die Bedingung für vier Iterationen falsch ist, wenn der Wert von ich ist 3,4,5 und 6. Die folgende Ausgabe wird also für die vier Iterationen ausgegeben.

Beispiel-5: Verwendung einer for-Schleife mit einer continue-Anweisung

Die Continue-Anweisung wird in jeder Schleife verwendet, um eine Anweisung basierend auf einer bestimmten Bedingung auszulassen. Ein Array namens Produkt wird im folgenden Skript deklariert. für in Schleife wird verwendet, um das Array zu iterieren und jeden Wert mit „Bürosoftware“. Wenn der Wert übereinstimmt, wird eine nicht verfügbare Nachricht gedruckt, indem die verfügbare Nachricht für die Continue-Anweisung weggelassen wird, andernfalls wird eine nicht verfügbare Nachricht gedruckt. Führen Sie das Skript über das Terminal aus.

$ echo | awk 'BEGINproduct["1001"]="Antivirus";
product["1002"]="Bürosoftware";
product["1003"]="Zeichensoftware";
Produkt["1004"]="Festplatte";
product["1005"]="DVD"; END für (i im Produkt)
if(product[i] == "Office-Software")
Druckprodukt[i]," ist nicht verfügbar\n";
fortsetzen;

Druckprodukt[i], " ist verfügbar"  ,"\n";'

Ausgabe:

Die folgende Ausgabe erscheint nach dem Ausführen des Skripts.

Beispiel-6:  for-Schleife in einer awk-Datei verwenden

Erstellen Sie eine Textdatei mit dem Namen Der Umsatz.TXT und fügen Sie den folgenden Inhalt hinzu, um dieses Beispiel zu üben.

Der Umsatz.TXT

2015 70000
2016 80000
2017 83000
2018 86000
2019 90000

Erstellen Sie eine awk-Datei mit dem Namen cal_sal.awk mit dem folgenden Skript, um den Gesamtverkaufsbetrag der Datei zu berechnen Der Umsatz.TXT. Das zweite Feld enthält den jährlichen Verkaufsbetrag in der Datei Der Umsatz.TXT. Im Skript, die Verkäufe Array speichert alle Werte des zweiten Feldes und Summe Variable wird mit 0 initialisiert, um alle Werte von zu addieren Der Umsatz Array. Nächster, für in Schleife wird verwendet, um jedes Element von zu iterieren die Verkäufe Array und fügen Sie den Wert mit dem hinzu Summe Variable. Schließlich wird die print-Anweisung verwendet, um den Wert von zu drucken Summe variabel zur Anzeige des Gesamtumsatzes.

cal_sal.awk


Umsatz[i++]=$2;
Summe = 0;

ENDE
für (ich im Vertrieb)

Summe = Summe + Umsatz[i];

print "Gesamtumsatz = Summe;

Führen Sie den folgenden Befehl aus, um das Skript von cal_sal . auszuführen.awk-Datei.

$ awk -f cal_sal.awk verkäufe.TXT

Ausgabe:

Es gibt 5 Datensätze in der Der Umsatz.TXT Datei und die Summe des Verkaufsbetrags beträgt 409000, die nach der Ausführung des Skripts gedruckt wird.

Fazit:

In diesem Tutorial wird versucht, die verschiedenen Verwendungen der for-Schleife im awk-Befehl zu erklären. Hoffe, der Leser wird eine klare Vorstellung davon bekommen, wie man for-Schleife in einem awk-Skript verwendet und in der Lage ist, for-Schleife in der awk-Programmierung richtig zu verwenden.

So verwenden Sie AutoKey zur Automatisierung von Linux-Spielen
AutoKey ist ein Desktop-Automatisierungsdienstprogramm für Linux und X11, programmiert in Python 3, GTK und Qt. Mithilfe der Skript- und MACRO-Funktio...
So zeigen Sie den FPS-Zähler in Linux-Spielen an
Linux-Gaming bekam einen großen Schub, als Valve 2012 die Linux-Unterstützung für den Steam-Client und seine Spiele ankündigte. Seitdem haben viele AA...
Herunterladen und Spielen von Sid Meier's Civilization VI unter Linux and
Einführung in das Spiel Civilization 6 ist eine moderne Version des klassischen Konzepts, das in der Reihe der Age of Empires-Spiele eingeführt wurde....