So verwenden Sie Index-Arrays in Bash

Bash bietet Unterstützung für indizierte Arrays, bei denen es sich im Wesentlichen um Listen von Elementen handelt, auf die über ihre Indexnummer zugegriffen werden kann. Indizierte Arrays sind besonders nützlich, wenn Sie viele verwandte Werte speichern und bearbeiten möchten. Lesen Sie diesen Artikel weiter, um zu erfahren, wie Sie Index-Arrays verwenden.

Was sind Index-Arrays?

Indizierte Arrays sind eine Sammlung von Elementen in Bash, auf die über einen Index oder einen Schlüssel zugegriffen werden kann. Diese Arrays können zum Speichern und Abrufen von Daten in einer bestimmten Reihenfolge verwendet werden, was die Verwaltung großer Datenmengen erleichtert. Die Syntax zum Deklarieren eines indizierten Arrays in Bash lautet wie folgt:

=( element1 element2 element3 … )

Hier ist Array-Name der Name des Arrays und Element1, Element2, Element3 usw. sind die Werte, die im Array gespeichert werden sollen. Die Werte werden durch Leerzeichen getrennt. Beachten Sie, dass Sie zum Erstellen eines Arrays auch den Befehl „declare“ verwenden können.

So verwenden Sie indizierte Arrays in Bash

Um ein Indexarray in Bash zu erstellen, müssen Sie lediglich eine Variable deklarieren und ihr in Klammern eingeschlossene und durch Leerzeichen getrennte Werte zuweisen. Hier sind einige Beispiele, die zeigen, wie indizierte Arrays in Bash verwendet werden:

Neuordnung einer Liste in Bash

Wenn Sie eine Liste mit Artikeln in einer bestimmten Reihenfolge haben und diese auf andere Weise neu anordnen möchten. Sie können ein Index-Array verwenden, um wie folgt eine neue Reihenfolge für die Artikel zu erstellen:

#!/bin/bash
items=(„Mango“, „Ananas“, „Erdbeere“, „Kirsche“, „Trauben“)
order=(4 2 0 3 1)
für i in „${order[@]}“
Tun
echo ${items[$i]}
Erledigt

In diesem Beispiel erstellen wir ein Array namens „items“ mit fünf Elementen. Wir erstellen außerdem ein Indexarray namens order, das eine neue Reihenfolge für die Elemente angibt. Anschließend durchlaufen wir das Order-Array und verwenden jeden Wert als Index, um das entsprechende Element aus dem Items-Array abzurufen und auszudrucken.

Filtern einer Liste in Bash

Wenn Sie eine Artikelliste haben und bestimmte Artikel anhand einer Bedingung herausfiltern möchten. Sie können ein Index-Array verwenden, um die Indizes der Elemente zu verfolgen, die die Bedingung erfüllen, wie folgt:

#!/bin/bash
items=(„Mango“, „Ananas“, „Erdbeere“, „Kirsche“, „Trauben“)
Indizes=()

für i in „${!items[@]}“
Tun
Wenn [[ ${items[$i]} == *“r“* ]]
Dann
Indizes+=($i)
fi
Erledigt

für i in „${indices[@]}“
Tun
echo ${items[$i]}
Erledigt

In diesem Beispiel erstellen wir ein Array namens „items“ mit fünf Elementen. Wir erstellen auch ein leeres Indexarray namens Indizes. Anschließend durchlaufen wir das Array „items“ und prüfen, ob jedes Element den Buchstaben „r“ enthält. Wenn dies der Fall ist, fügen wir seinen Index zum Index-Array hinzu. Schließlich durchlaufen wir das Array „indices“ und verwenden jeden Wert als Index, um das entsprechende Element aus dem Array „items“ abzurufen und auszugeben.

Vorkommen in Bash zählen

Wenn Sie eine Liste mit Elementen haben und die Anzahl der Vorkommen jedes Elements zählen möchten, können Sie ein Indexarray verwenden, um die Anzahl zu verfolgen. Hier ist ein Beispiel zur Demonstration:

#!/bin/bash
items=(„Mango“, „Ananas“, „Erdbeere“, „Kirsche“, „Trauben“)
zählt=()

für i in „${!items[@]}“
Tun
Wenn [[ ! „${counts[@]}“ =~ „${items[$i]}“ ]]
Dann
counts+=(„${items[$i]} 1“)
anders
index=$(echo „${counts[@]}“ | tr ‚ ‚ ‚\n‘ | grep -n „^${items[$i]}“ | cu)
count=$(echo „${counts[$index-1]}“ | schneiden -d‘ ‚ -f2)
zählt[$index-1]=“${items[$i]} $((count+1))“
fi
Erledigt

for count in „${counts[@]}“
Tun
echo $count
Erledigt

Zunächst wird ein Array namens „items“ mit einer Liste von Zeichenfolgen initialisiert. Dann deklariert es ein leeres Array namens „counts“. Es wird eine for-Schleife erstellt, um für jedes Element im Array „items“ zu iterieren und für jedes Element zu prüfen, ob es bereits im Array „counts“ vorhanden ist.

Wenn es nicht existiert, fügt es das Element und die Anzahl 1 zum Array „counts“ hinzu. Wenn es existiert, erhöht es die Anzahl dieses Elements im Array „counts“. Schließlich wird zum Ausdrucken jedes Elements und seiner entsprechenden Anzahl eine weitere for-Schleife verwendet. Die Ausgabe dieses Codes gibt die Anzahl jedes Elements im Array „items“ aus, wobei Duplikate separat gezählt werden.

Aktualisieren einer Liste in Bash

Wenn Sie eine Liste mit Elementen haben und Elemente daraus hinzufügen oder daraus löschen möchten, können Sie dafür ein Index-Array verwenden. Hier ist ein Beispiel zur Demonstration:

#!/bin/bash
items=(„Mango“, „Ananas“, „Erdbeere“, „Kirsche“, „Trauben“)

# Hinzufügen eines neuen Elements zum indizierten Array bei Index 2
Artikel[6]=“orange“
# Löschen des Elements an Index 2 aus dem indizierten Array
nicht eingestellte Elemente[2]

# Drucken des aktualisierten Arrays
echo „${items[@]}“

Im Skript wird ein indiziertes Array „items“ mit fünf Anfangselementen definiert. Um ein neues Element hinzuzufügen, wird der Wert einfach über das Syntax-Array dem gewünschten Index zugewiesen[index]=Wert. In diesem Skript wird „orange“ zum Index 6 des Arrays hinzugefügt. Um ein Element zu löschen, verwenden wir den Befehl unset gefolgt vom Index des Elements, das wir entfernen möchten. In diesem Fall wird das Element an Index 2 („Strawberry“) gelöscht. Das aktualisierte Array wird dann mit der Syntax „${array[@]}“, wodurch das gesamte Array erweitert wird.

Abschluss

Die indizierten Arrays sind eine praktische Bash-Struktur, mit der Sie mehrere Werte mithilfe einer einzigen Variablen speichern und bearbeiten können. Wenn Sie die Syntax und Verwendung indizierter Arrays verstehen, können Sie effizientere und effektivere Bash-Skripte schreiben.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen