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=saeedDanach 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[@]/$deleteWenn 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]' aufhebendeklariere -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=0fü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.