So verwenden Sie Array in awk -Befehl

So verwenden Sie Array in awk -Befehl
Eine Array -Variable wird verwendet, um mehr als eine Daten zu speichern. Es wird von den meisten Programmiersprachen unterstützt, um mehrere Daten zu speichern. Ein Array hat zwei Teile. Diese sind Schlüssel und Wert. Der Schlüssel wird verwendet, um auf den Standort des Wertes zuzugreifen. Ein Array kann numerisch und assoziativ sein. Das numerische Array unterstützt nur numerischen Wert als Schlüssel und assoziatives Array unterstützt sowohl den numerischen als auch den Indexwert als Schlüssel. Ein assoziatives Array wird vom Befehl awk unterstützt. Wie Sie das assoziative Array in awk definieren, zugreifen oder ändern können, wird in diesem Tutorial unter Verwendung verschiedener Beispiele angezeigt.

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.

Abschluss:

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.