Syntax:
ArrayName[Schlüssel] = WertFür die Array-Variable muss ein Name deklariert werden. ArrayName ist der Name des Arrays hier. Jedes Array muss die dritte Klammer verwenden, um die zu definieren Schlüssel oder Index und es wird ein beliebiger String-Wert für das assoziative Array sein. Wert kann ein beliebiges Zeichen, eine Zahl oder eine Zeichenfolge sein, die im bestimmten Index des Arrays gespeichert werden.
Beispiel-1: Definieren und Lesen eines eindimensionalen Arrays in awk
Ein eindimensionales Array kann eine einspaltige Datenliste speichern. Dieser Array-Typ enthält einen einzelnen Schlüssel und Wert für jedes Array-Element. Dieses Array kann im awk-Befehl wie in anderen Programmiersprachen verwendet werden. In diesem Beispiel ist ein Array namens Buch wird mit drei Elementen deklariert und die for-Schleife wird verwendet, um jedes Element zu lesen und zu drucken. Führen Sie den folgenden Befehl über das Terminal aus.
$ echo | awk 'BEGIN book["HTML"]="HTML Pocket Guide 2010";book["JS"]="Effektives JavaScript";
book["CSS"]="Webdesign lernen";
ENDfor (i in book) print "Das Buch von ", i, " ist ",book[i];'
Ausgabe:
Beispiel-2: Definieren und Lesen eines zweidimensionalen Arrays in awk
Ein zweidimensionales Array wird verwendet, um eine tabellarische Datenliste zu speichern, die eine feste Anzahl von Zeilen und Spalten enthält. In diesem Beispiel wird das zweidimensionale Array namens Students deklariert, das drei Elemente enthält. Hier werden Studenten-ID und Name als Schlüsselwerte des Arrays verwendet. Wie im vorherigen Beispiel wird die for-in-Schleife im awk-Skript verwendet, um die Werte des Arrays zu drucken. Führen Sie das folgende Skript über das Terminal aus.
$ echo | awk 'BEGINNENStudenten["87462,Mohammed Ali"] = 87;
Studenten["98376,Sakib Al Hasan"] = 99;
Studenten["79937,Musfikur Rahman"] = 88;
print "(ID,Name) => Markierungen";
END for (i in Students) print "(", i, ") => ", Students[i]; '
Ausgabe:
Beispiel-3: Array-Element löschen
Jeder Wert des Arrays kann basierend auf dem Schlüsselwert gelöscht werden. Hier, Buch Array mit drei Elementen wird am Anfang des Skripts definiert. Als nächstes wird der Wert des Schlüssels HTML wird gelöscht mit löschen Befehl. Der Elementwert von HTML Schlüssel wird vor und nach dem . gedruckt löschen Befehl. Führen Sie den folgenden Befehl aus, um die Ausgabe zu überprüfen.
$ echo | awk 'BEGIN book["HTML"] = "HTML Pocket Guide 2010";book["JS"] = "Effektives JavaScript";
book["CSS"] = "Webdesign lernen";
print "Vor dem Löschen - ",book["HTML"];
Buch löschen["HTML"];
print "\nNach dem Löschen - ", book["HTML"];'
Ausgabe:
Die Ausgabe zeigt, dass der Wert von HTML index ist nach der Ausführung leer löschen Befehl.
Beispiel-4: Lesen des Bash-Arrays in awk
In den vorherigen Beispielen wird das Array im awk-Befehl deklariert und durch eine for-in-Schleife iteriert. Aber Sie können jedes Bash-Array mit einem awk-Skript lesen. In diesem Beispiel ist ein Bash-Array namens lang wird im ersten Befehl deklariert. Im zweiten Befehl werden die bash-Array-Werte an den awk-Befehl übergeben, der alle Elemente in einem awk-Array namens . speichert awkArray. Die Werte des awkArray-Arrays werden mit der for-Schleife ausgegeben. Führen Sie den folgenden Befehl vom Terminal aus, um die Ausgabe zu überprüfen.
$ lang=( "PHP" "ASP" "JSP" "C#" "C++" )$ printf '%s\n' "$lang[@]" | awk ' awkArray[NR] = $1 END for
(i in awkArray) print awkArray[i], "\n"; '
Beispiel-5: Einlesen des Dateiinhalts in ein awk-Array
Der Inhalt jeder Datei kann mit einem awk-Array gelesen werden. Erstellen Sie eine Textdatei mit dem Namen Vogel.TXT mit den unten angegebenen Inhalten.
Vogel.TXT
CocktailWachtel
Graupapagei
Baazigar
Das folgende awk-Skript wird verwendet, um den Inhalt von Vogel.TXT Datei und speichern Sie die Werte im Array, awkArray. Die for-Schleife wird verwendet, um das Array zu analysieren und die Werte im Terminal auszugeben. Führen Sie das folgende Skript über das Terminal aus.
$ awk ' awkArray[counter++] = $1; ENDE für (n=0; nAusgabe:
Das Skript druckt den Inhalt von Vogel.TXT.
Beispiel-6: Entfernen doppelter Einträge aus einer Datei
awk-Skript kann verwendet werden, um doppelte Daten aus jeder Textdatei zu entfernen. Erstellen Sie eine Textdatei mit dem Namen Früchte.TXT mit folgendem Inhalt. Es gibt zwei doppelte Daten in der Datei. Diese sind Apfel und Orange.
Früchte.TXT
ApfelOrange
Traube
Apfel
Banane
Orange
Guave
Das folgende awk-Skript liest jede Zeile aus der Textdatei, Früchte.TXT und überprüfen Sie, ob die aktuelle Zeile im Array vorhanden ist oder nicht, arr. Wenn die Zeile im Array vorhanden ist, wird die Zeile nicht im Array gespeichert und der Wert nicht im Terminal ausgegeben. Das Skript speichert also nur die eindeutigen Zeilen aus der Datei im Array und druckt. Führen Sie die Befehle über das Terminal aus.
$ Katzenfrüchte.TXT$ awk '!($0 in arr) print arr[$0],$0; ' Früchte.TXT
Ausgabe:
Der erste druckt den Inhalt der Datei, Früchte.txt und der zweite Befehl druckt den Inhalt der Früchte.txt nach dem Weglassen doppelter Zeilen aus der Datei.
Fazit:
Dieses Tutorial zeigt die verschiedenen Verwendungen des Arrays im awk-Skript anhand verschiedener Beispiele mit Erklärung. Auf das Bash-Array und alle Textdateiinhalte kann auch mit awk-Array zugegriffen werden. Wenn Sie neu in der awk-Programmierung sind, hilft Ihnen dieses Tutorial dabei, die Verwendung von awk-Arrays von Grund auf zu erlernen und Sie können Array in einem awk-Skript richtig verwenden.