BASH-Programmierung

Entfernen eines bestimmten Elements aus einem Array in Bash

Entfernen eines bestimmten Elements aus einem Array in Bash
Obwohl der gesamte Prozess nicht sehr einfach ist und wie ein Hack erscheinen mag, könnten Sie vielleicht ein Element aus dem vorhandenen Array entfernen. Wir könnten mehr als eine Methode verwenden, um ein Element zu entfernen. Eine der Methoden ist „unset“, mit der ein Element aus einem bestimmten Index gelöscht und anschließend durch ein anderes Array ersetzt wird. Mehrere andere Sätze von Elementen können gelöscht werden mit: auch. Mit der Methode pop() können Sie das Listenelement vom Ende entfernen, aber nur das einzelne Element. Lassen Sie uns einige Beispiele dafür haben.

Beispiel 01: Element mit Präfixübereinstimmung entfernen

Unsere erste Methode; um ein bestimmtes Element aus einem Array zu entfernen, sind die Präfixe übereinstimmend. Melden Sie sich von einer beliebigen Linux-Distribution an, die Sie derzeit verwenden, und öffnen Sie das Terminal darin.  Erstellen Sie eine Datei „Eingabe“.Sch". Öffnen Sie diese Datei aus Ihrem Home-Verzeichnis und schreiben Sie den folgenden Code hinein.

Lassen Sie uns diesen Code Schritt für Schritt erklären. Um ein bestimmtes Element zu löschen, müssen Sie zuerst ein Array erstellen. Lassen Sie uns also ein Array namens „array“ erstellen und ihm einige Werte zuweisen, da ich ihm drei Werte zugewiesen habe; aqsa, raza und saeed.

array=(aqsa raza saeed)

Jetzt haben wir eine weitere Variable erstellt, "delete", und weisen ihr einen ähnlichen Wert zu, wie er sich im "Array" befindet. In Wirklichkeit wird diese Technik verwendet, um die Elemente der Präfixe zu entfernen, die $delete ähneln, nicht im Wesentlichen ganze Elemente.

delete=saeed

Danach haben wir die echo-Anweisung verwendet, um die Elemente eines Arrays auszugeben, die nicht die gleichen Präfixe haben. Hier ist der Code dazu:

echo $array[@]/$delete

Wenn Sie mit Strings gearbeitet haben, müssen Sie dasselbe Skript mit einigen Änderungen wie folgt verwenden:

array=( "$array[@]/$delete" )

Sie sehen die Ausgabe unten. Es werden alle Elemente des Arrays angezeigt, wobei der Wert ähnlich wie die Präfix-Variable "$delete" übersprungen wird.

Wenn jemand mehr als ein bestimmtes Element aus dem Array entfernen möchte, kann er dies ganz einfach tun. Schreiben Sie einfach den folgenden Code in die Datei. Lass uns diesen Code erklären.

Weisen Sie der neuen Variablen die ähnlichen Werte aus dem Array zu, wie ich der Variablen $delete . zwei Werte zugewiesen habe.

delete=(aqsa raza)

Jetzt verwenden wir die „for“-Schleife, um die vorangestellten Werte dem Array mit der Variablen $delete zuzuordnen. Die „for“-Schleife gleicht die Werte mit $delete ab und erstellt ein anderes Array, das keine ähnlichen Werte hätte.

für del in $delete[@]
tun
array=("$array[@]/$del")
getan
echo $array[@]/$delete

Bei der Ausführung wird der verbleibende Wert angezeigt, der „saeed“ ist.

Beispiel 02: Element mit dem Befehl zum Aufheben entfernen

Die andere Methode ist „unset“, mit der ein Element aus einem bestimmten Index entfernt und in ein bestimmtes neues Array dupliziert wird. Während dieses Szenarios ist es nicht nur zum Aufheben verpflichtet. Da unset kein Element löscht, weist es einfach den Null-String innerhalb eines Arrays einem bestimmten Index zu. Schreiben Sie den folgenden Code in Ihre Datei.

Hier haben wir ein globales Array mit dem Schlüsselwort „declare“ gefolgt von „-a“ definiert. Wir haben ihm einige Stringwerte zugewiesen und geben alle Werte eines Arrays aus.

define -a array=('aqsa' 'rimsha"saeed"raza"awan')
echo $array[@]

Wir werden den Wert bei Index 2 aus einem Array entfernen und ein weiteres leeres Array namens „array2“ deklarieren.

'Array[2]' aufheben
deklariere -a array2=()

Fügen Sie danach eine Inkrementvariable i=0 hinzu, verwenden Sie die „for“-Schleife, um das Element im ersten Array zu überprüfen und dem zweiten Array, das ist „array2“, Werte des ersten Arrays zuzuweisen.

i=0
für Element in $array[@]
tun
array2[$i]=$element
((++i))
Getan
echo $array[@]

Wenn Sie das alte Array erneut drucken, wird nicht das nicht gesetzte Element angezeigt, sondern alle anderen Elemente. Versuchen wir es mit einigen Echo-Anweisungen, um zu überprüfen, ob das unset-Element an seiner Stelle ist oder nicht. Die erste Echo-Anweisung zeigt die Nachricht zusammen mit dem spezifischen Indexnummernwert aus einem "Array" an. Sie können sehen, dass der erste Wert bereits im Array vorhanden ist, er angezeigt wird und der zweite Wert nicht festgelegt ist. Daher wird es nicht angezeigt.

Echo „1“st Wert ist $array[1], 2nd Wert ist $array[2]”

Es wurde ein weiteres Echo-Statement geschrieben, in dem wir den Inhalt des zweiten Arrays „array2“ wie folgt ausgegeben haben:

echo $array2[@]

In der letzten und dritten echo-Anweisung haben wir die beiden spezifischen Werte des zweiten Arrays „array2“ wie folgt angezeigt:

Echo „1“st Wert ist $array2[1], 2nd Wert ist $array2[2]”

Bei der Ausführung erhalten Sie die folgende Ausgabe.

Beispiel 03: Entfernen eines Elements mithilfe der Sub-Arrays

In diesem Beispiel erstellen wir neue Unterarrays, um ein Element aus dem angegebenen Array zu entfernen. Die Beschreibung des folgenden Codes ist angegeben.

Lassen Sie uns ein Array „arr“ definieren und ihm einige Werte wie folgt zuweisen:

arr=( 'e1"e2"e3"e4"e5"e6')

Drucken Sie nun dieses Array mit der echo-Anweisung aus, und wir finden die Werte des Arrays als Ausgabe.

echo $arr[@]

Der sehr entscheidende und wichtige Schritt dieser Methode besteht darin, Unterarrays des definierten Arrays zu erstellen. Lassen Sie uns also zwei Arrays aus dem alten Array erstellen, indem wir die Indizes wie folgt verwenden:

arr=( "$arr[@]:0:2" "$arr[@]:3" )

Im obigen Code haben wir das alte Array verwendet, um die neue Teilzeichenfolge beim Setzen der Indizes zu definieren setting. In „:0:2“ stellt die erste Zahl nach dem Doppelpunkt den Indexwert dar, der in das Subarray aufgenommen wird, während die zweite Indexnummer nach dem Doppelpunkt aus dem Subarray ausgeschlossen wird. Dies bedeutet, dass das neue Unterarray nicht den Wert von Index 2 des realen Arrays "arr" hat, das "e3" ist. Die „()“-Klammern werden verwendet, um die Unterarrays zusammenzuführen und wieder ein ganz neues Array „arr“ zu erstellen. Wenn Sie nun die Datei ausführen, wird das alte und das neue Array wie folgt angezeigt.

echo $arr[@]

Fazit

In diesem Tutorial haben wir drei Methoden effizient ausprobiert, um ein Element aus einem Array zu entfernen, z.G., Verwenden von Präfixen, nicht gesetzten und Unterarrays. Ich hoffe, diese Anleitung wird Ihnen helfen, das Entfernen eines Elements aus einem Array in der bash zu verstehen.

Emulieren Sie Mausklicks, indem Sie den Mauszeiger mit der klicklosen Maus in Windows 10 bewegen
Die Verwendung einer Maus oder Tastatur in der falschen Haltung bei übermäßiger Nutzung kann zu vielen gesundheitlichen Problemen führen, einschließli...
Fügen Sie mit diesen kostenlosen Tools Mausgesten zu Windows 10 hinzu
In den letzten Jahren haben sich Computer und Betriebssysteme stark weiterentwickelt. Es gab eine Zeit, in der Benutzer Befehle verwenden mussten, um ...
Steuern und verwalten Sie Mausbewegungen zwischen mehreren Monitoren in Windows 10
Dual-Display-Maus-Manager lässt Sie die Mausbewegung zwischen mehreren Monitoren steuern und konfigurieren, indem Sie ihre Bewegungen in der Nähe der ...