Entfernen Sie ein bestimmtes Element aus einem Array in Bash

Entfernen Sie ein bestimmtes Element aus einem Array in Bash

Bash verarbeitet nur die assoziativen Arrays und die eindimensionalen numerisch indizierten Arrays. Beim Bash -Scripting bestehen Arrays nicht unbedingt aus einer Gruppe assoziierter Elemente. Die Array -Elemente können Zeichenfolgen und Zahlen sein, da Bash nicht zwischen ihnen unterscheidet. In diesem Artikel werden wir die Löschvorgänge auf den Bash -Arrays mit unterschiedlichen Ansätzen ausführen. Wir müssen die Indexposition des Elements im Array oder die Taste kennen, um sie aus dem Array zu entfernen. Der Befehl „uneingestellter“ wird üblicherweise in Bash verwendet, um ein Element zu entfernen.

Beispiel 1: Entfernen eines bestimmten Array -Elements im Bash -Skript

Der nicht festgelegte Befehl wird verwendet, um das jeweilige Element aus dem Array zu löschen. Der nicht festgelegte Befehl erfordert den Namen der Variablen, in dem das Array definiert ist, sowie den Index des Elements. Im folgenden Bash-Skript erstellen wir zunächst die Variable "myarray" mit dem Schlüsselwort "Declare" mit der Option "-a". Dann wird die Variable "myarray" mit den Streichelementen eingefügt. Anschließend stellen wir den Befehl „Unstet“ ein, um das Array -Element zu löschen. Der unbegründete Befehl wird mit dem Array -Variablennamen „Myarray“ als Argument übergeben. Das „MyArray“ wird mit dem Index [2] festgelegt, der das Array -Element löscht, das in diesem Index platziert ist.

Als nächstes haben wir den Befehl echo, mit dem das aktualisierte Array nach dem Löschvorgang angezeigt wird. Der Ausdruck „myarray [@]“ wird verwendet, um das Array zu drucken, in dem das Symbol "@" den Array -Index darstellt.

#!/Bin/Bash
Declare -a myarray = ("Panda" "Owl" "Katze" "Kaninchen" "Bear")
Uneiniger Myarray [2]
echo "$ myarray [@]"

Wenn wir den Indexwert von „2“ aus dem angegebenen Array mit dem Befehl uneingestellter Array löschen. Und das modifizierte Array wird in der folgenden Ausgabe angezeigt. Beachten Sie, dass der Array -Index jederzeit aus der Anzahl der „0“ beginnt:

Beispiel 2: Entfernen eines bestimmten Array -Elements im Bash -Skript über einen relativen Index

Die Elemente werden aus dem letzten Element verwiesen, wenn wir die Indizes wie -1, -2 usw. verwenden. Daher können wir sie auch für die vorherigen Elemente unter Verwendung der relativen Bestellung löschen oder ändern. Lassen Sie uns das folgende Bash -Skript haben, in dem der erste Schritt der Deklarierung einer Variablen für ein Array den Befehl „deklarieren“ der Bash verwendet. Die Array -Variable trägt den Titel "Sprachen". Wir fügen vier verschiedene Programmiersprachen zusammen mit der Indexnummer ein. Danach haben wir einen Bash-nicht-set-Set-Befehl, bei dem die Variable „Sprachen“ mit dem relativen Index „-3“ festgelegt wird, um das Array-Element zu löschen. Dann verwenden wir den Ausdruck "$ Sprachen [@]", um das neu geformte Array nach der Verwendung des Echo -Befehls zu drucken. Das jeweilige Element ist vom Array nicht festgelegt.

#!/bin/usr/env bash
Declare -a Sprachen = ((
[0] = Java
[1] = Kotlin
[2] = Python
[3] = Scala
)
Unbegrenzte Sprachen [-3]
echo "$ Sprachen [@]"

Die Ausgabe zeigt das Array an, in dem der Wert "Kotlin" entfernt wird. Daher ist es relativ einfacher, sich auf bestimmte Elemente in einem großen angegebenen Array zu beziehen.

Beispiel 3: Entfernen eines bestimmten Array -Elements im Bash -Skript mit Regex

Die jüngste Implementierung des Bash -Skripts zum Entfernen eines bestimmten Elements aus dem angegebenen Array ist sehr einfach zu erreichen. Jetzt haben wir einen anderen Fall, in dem die Elemente eines Arrays aus einem anderen Array entfernt werden. Die folgenden Bash -Skripte entfernen jedes Element aus dem Array, das mit einem Regex entspricht. Wir deklarieren zunächst die "arr1" -Variable, die mit einem Ganzzahlwert angepasst wird.

Anschließend erstellen wir ein anderes Array, das "arr2" ist und zwei Ganzzahlwerte einfügen, die auch im ersten Array "arr1" vorhanden sind, vorhanden sind. Danach definieren wir eine "Ergebnis" -Variable mit dem Ausdruck ("$ arr1 [@]"), der zeigt. Als Nächst.

Als Nächst. Der Ausdruck "Ergebnis [@]" hier speichert die Array -Elemente des "arr1" und der Ausdruck "$ ele" hat die Array -Elemente von "arr2". Das "arr2" stimmt mit diesen Elementen aus dem Array "arr1" überein und löscht sie aus dem "arr1" -Array. Der Echo -Befehl wird dann bereitgestellt, um die verbleibenden Elemente des Array „arr1“ anzuzeigen.

#!/Bin/Bash
arr1 = (11 22 33 44 55 66 77 88 99)
arr2 = (22 77)
result = ("$ arr1 [@]")
für ELE in "$ arr2 [@]"; Tun
result = ($ result [@]/*$ ele*/)
Erledigt
echo "arr1 neue Elemente sind: $ result [@]"

Nach dem Abzug des Regex zeigt der Ausgang das Element an, in dem die Elemente „22“ und „77“ aus dem „arr1“ entfernt werden.

Beispiel 4: Entfernen des gesamten Arrays im Bash -Skript

Die oben genannten Bash -Skripte werden verwendet, um die jeweiligen Elemente aus dem Array zu entfernen. Wir können auch die gesamten Elemente des Arrays entfernen, indem wir die Array -Variable in den nicht festgelegten Befehl angeben. Hier implementieren wir den Löschvorgang im Bash -Skript. Der erste Schritt ist die Deklaration des Arrays, die wir mit dem Befehl „deklarieren“ erreicht haben.

Wir definieren die Variable für das Array als "Strarrray". Dann fügen wir die Zeichenfolgenelemente im Array hinzu. Danach rufen wir den nicht festgelegten Befehl an, der den Namen „Strarrray“ ohne Indexwert nimmt. Dieser Ansatz wird verwendet, um das gesamte Array im Bash -Skript zu löschen. Am Ende verwenden wir die beiden Echo -Befehle, um das Array und die Schlüssel des Arrays anzuzeigen.

#!/Bin/Bash
Declare -a Strarrray = ("ein" "zwei" "drei" "vier" "fünf")
Ungesetzter Strarrray
echo $ !Strarrray [@]
echo $ !Strarrray [@]

Wir versuchen, die Elemente und Schlüssel des oben genannten Skripts zu drucken, die keine Ausgabe zurückgeben. Da das Array nicht mehr existiert, wird ein leeres Ergebnis zurückgegeben.

Beispiel 5: Entfernen eines bestimmten Array -Elements im Bash -Skript mit einem anderen Ansatz

In den vorherigen Beispielen wird der Befehl uneingestellter oder ein bestimmtes oder bestimmtes Element aus einem bestimmten Array gelöscht. Dort haben wir eine andere Technik, um das jeweilige Element des Arrays zu löschen, ohne den Befehl nicht auszusetzen. Das folgende Bash -Skript ist mit dem Array definiert, das die ersten fünf Zeichen hat. Dieses Array wird in einer "Chararray" -Variable gespeichert.

Dann wird die Variable "Chararray" erneut aufgerufen und mit dem Ausdruck "$ Chararray [@]: 1" angegeben. Der Ausdruck beseitigt das Element des Arrays, das beim ersten Auftreten im Array vorhanden ist, da der Indexwert von „1“ dem „Chararray [@]“ zur Verfügung gestellt wird. Nachdem das angegebene Element aus dem Array eliminiert wurde, generiert der Befehl echo das Array, das alle Elemente mit Ausnahme des entfernten Elements enthält.

CharArray = (a b c d e f)
Chararray = ("$ Chararray [@]: 1")
echo $ Chararray [@]

Das Zeichenelement von „A“ wird im folgenden Ausgabearray nicht angezeigt, da es über den Ausdruck „$ Chararray [@]: 1“ gelöscht wird.

Abschluss

Der Artikel über das Löschen eines bestimmten Elements aus einem Array in einem Bash -Skript wird konzeptionell erläutert. Hier haben wir den nicht festgelegten Befehl verwendet, um das gesamte Array und das jeweilige Element aus dem Array zu entfernen. Der nicht festgelegte Befehl entfernt das Element auch durch den Ansatz der relativen Indizes aus dem Array. Das Match Regex wird auch gegeben, um das Element aus dem Array zu löschen. Zusätzlich haben wir das Match Regex eingeschlossen, um ein bestimmtes Element aus einem Array zu entfernen.