Syntax:
ArrayName [Schlüssel] = Wert
Ein Name muss für die Array -Variable deklarieren. ArrayName ist der Name des Arrays hier. Jedes Array muss die dritte Klammer verwenden, um die zu definieren Taste oder Index und es wird ein Zeichenfolgenwert für das assoziative Array sein. Wert Kann eine beliebige Zeichen, Anzahl oder Zeichenfolge sein, die im bestimmten Index des Arrays gespeichert wird.
Beispiel 1: Definieren und Lesen eines eindimensionalen Arrays in awk
Ein eindimensionales Array kann eine einzelne Spaltendatenliste speichern. Diese Art von Array enthält einen einzelnen Schlüssel und einen einzelnen Wert für jedes Array -Element. Dieses Array kann wie andere Programmiersprachen im Befehl awk verwendet werden. In diesem Beispiel ein Array namens namens Buch wird mit drei Elementen deklariert und für die Schleife zum Lesen und Drucken jedes Elements verwendet. Führen Sie den folgenden Befehl vom Terminal aus.
$ echo | awk 'begin book ["html"] = "html Pocket Guide 2010";
buchen ["js"] = "effektives JavaScript";
Buch ["CSS"] = "Lern -Webdesign";
Ende für (ich in Buch) drucken "das Buch", "I," is ", book [i]; '
Ausgang:
Beispiel-2: Definieren und Lesen von zweidimensionalem Array in awk
Ein zweidimensionales Array wird verwendet, um tabellarische Datenliste zu speichern, die eine feste Anzahl von Zeilen und Spalten enthält. Das zweidimensionale Array namens Studenten wird in diesem Beispiel erklärt, das drei Elemente enthält. Hier werden Studenten -ID und Name als Schlüsselwerte des Arrays verwendet. Wie beim vorherigen Beispiel wird für die in der awk-Skript für die In-in-Schleife verwendet, um die Werte des Arrays zu drucken. Führen Sie das folgende Skript vom Terminal aus.
$ echo | awk 'begin
Studenten ["87462, Mohammed Ali"] = 87;
Studenten ["98376, Sakib al Hasan"] = 99;
Studenten ["79937, Musfikur Rahman"] = 88;
print "(id, name) => marks";
Ende für (i in Studenten) drucken "(", ich ") =>", Schüler [i]; '
Ausgang:
Beispiel-3: Array-Element löschen
Jeder Wert des Arrays kann gelöscht werden, basierend auf dem Schlüsselwert. Hier, Buch Array mit drei Elementen wird zu Beginn des Skripts definiert. Als nächstes der Wert des Schlüssels Html wird durch Verwendung gelöscht löschen Befehl. Der Elementwert von Html Der 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";
buchen ["js"] = "effektives JavaScript";
Buch ["CSS"] = "Learning Web Design";
Drucken Sie "Before Delete -", Book ["Html"];
Buch löschen ["html"];
Druck "\ nafter Delete -", book ["html"]; '
Ausgang:
Die Ausgabe zeigt, dass der Wert von Html Der 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 Befehl awk deklariert und von der für die In-In-Schleife iteriert. Sie können jedoch jedes Bash -Array by AWK -Skript lesen. In diesem Beispiel ein Bash -Array mit dem Namen Lang wird im ersten Befehl deklariert. Im zweiten Befehl werden die Bash -Array -Werte in den awk -Befehl übergeben, der alle Elemente in einem awk -Array namens speichert Awkarray. Die Werte von Awkarray Array werden gedruckt, indem sie für die Schleife verwendet werden. 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 für
(i in awkarray) print awkarray [i], "\ n"; '
Beispiel-5: Lesen Sie den Dateiinhalt in ein awk-Array
Der Inhalt jeder Datei kann mithilfe von awk -Array gelesen werden. Erstellen Sie eine Textdatei mit dem Namen Vogel.txt mit dem unten angegebenen Inhalt.
Vogel.txt
Cocktail
Wachtel
Grauer Papagei
Baazigar
Das folgende awk -Skript wird verwendet, um den Inhalt von zu lesen Vogel.txt Datei und speichern Sie die Werte im Array, Awkarray. Für die Schleife wird das Array analysiert und die Werte im Terminal drucken. Führen Sie das folgende Skript vom Terminal aus.
$ awk 'awkarray [counter ++] = $ 1; Ende für (n = 0; nprint awkarray [n], "\ n"; ' Vogel.txt
Ausgang:
Das Skript druckt den Inhalt von Vogel.txt.
Beispiel-6: Entfernen von doppelten Einträgen aus einer Datei
AWK -Skript kann verwendet werden, um doppelte Daten aus einer beliebigen Textdatei zu entfernen. Erstellen Sie eine Textdatei mit dem Namen Früchte.txt mit dem folgenden Inhalt. In der Datei befinden sich zwei doppelte Daten. Diese sind Apfel Und Orange.
Früchte.txt
Apfel
Orange
Traube
Apfel
Banane
Orange
Guave
Das folgende awk -Skript wird jede Zeile aus der Textdatei lesen, Früchte.txt und prüfen die aktuelle Linie existieren oder nicht im Array, arr. Wenn die Linie im Array vorhanden ist, speichert sie die Linie nicht im Array und druckt den Wert nicht im Terminal. Das Skript speichert also nur die eindeutigen Zeilen aus der Datei in das Array und drucken. Führen Sie die Befehle vom Terminal aus.
$ cat fruits.txt
$ awk '!($ 0 in arr) print arr [$ 0], $ 0; 'Früchte.txt
Ausgang:
Der erste wird den Inhalt der Datei, Früchte, ausdrucken.TXT und der zweite Befehl drucken den Inhalt der Früchte.txt nach weggelassener doppelten Zeilen aus der Datei.
In diesem Tutorial werden die verschiedenen Verwendungen des Array in awk -Skripts angezeigt, indem verschiedene Beispiele mit Erklärung verwendet werden. BASH Array und alle Textdateiinhalte können auch mithilfe von AWK -Array zugegriffen werden. Wenn Sie in der awk -Programmierung neu sind, hilft Ihnen dieses Tutorial, die Verwendung von AWK -Array aus dem Basic zu lernen, und Sie können das Array in awk -Skript ordnungsgemäß verwenden.