Awk

So verwenden Sie das Array im Befehl awk

So verwenden Sie das Array im Befehl awk
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 besteht aus zwei Teilen. Das sind Schlüssel und Wert. Schlüssel wird verwendet, um auf die Position des Werts zuzugreifen. Ein Array kann numerisch und assoziativ sein. Das numerische Array unterstützt nur den numerischen Wert als Schlüssel und das assoziative 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 im awk-Befehl definieren, darauf zugreifen oder es ändern können, wird in diesem Tutorial anhand verschiedener Beispiele gezeigt.

Syntax:

ArrayName[Schlüssel] = Wert

Fü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 'BEGINNEN
Studenten["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

Cocktail
Wachtel
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; nprint awkArray[n],"\n"; ' Vogel.TXT

Ausgabe:

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

Apfel
Orange
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.

Top 10 Spiele zum Spielen auf Ubuntu
Die Windows-Plattform war eine der dominierenden Plattformen für Spiele aufgrund des großen Prozentsatzes von Spielen, die heute entwickelt werden, um...
Die 5 besten Arcade-Spiele für Linux
Heutzutage sind Computer ernsthafte Maschinen, die zum Spielen verwendet werden. Wenn du den neuen Highscore nicht bekommst, weißt du was ich meine. I...
Schlacht um Wesnoth 1.13.6 Entwicklung veröffentlicht
Schlacht um Wesnoth 1.13.6, das letzten Monat veröffentlicht wurde, ist die sechste Entwicklungsversion im 1.13.x-Serie und bietet eine Reihe von Verb...