Usuń określony element z tablicy w Bash

Usuń określony element z tablicy w Bash

Bash obsługuje tylko tablice asocjacyjne i jednowymiarowe tablice indeksowane numerycznie. W skryptach bash tablice niekoniecznie składają się z grupy powiązanych elementów. Elementy tablicy mogą być sznurkami i liczbami, ponieważ Bash nie różnicuje się między nimi. W tym artykule przeprowadzimy operacje usuwania tablic Bash z różnymi podejściami. Musimy znać pozycję indeksu elementu w tablicy lub kluczu, aby usunąć go z tablicy. Polecenie „Unset” jest powszechnie używane w Bash do usunięcia elementu.

Przykład 1: Usuwanie określonego elementu tablicy w skrypcie Bash

Polecenie UNSET jest wykorzystywane do usuwania konkretnego elementu z tablicy. Polecenie UNSET wymaga nazwy zmiennej, w której tablica jest zdefiniowana, a także indeks elementu. W poniższym skrypcie Bash najpierw tworzymy zmienną „MyArray” za pomocą słowa kluczowego „Declare” z opcją „-a”. Następnie zmienna „myarray” jest wstawiana do elementów strunowych. Następnie wdrażamy polecenie „Unset”, aby usunąć element tablicy. Polecenie UNSET jest przekazywane z nazwą zmiennej tablicy „MyArray” jako argument. „MyArray” jest ustawiony z indeksem [2], który usuwa element tablicy, który jest umieszczony w tym indeksie.

Następnie mamy polecenie Echo, które służy do wyświetlania zaktualizowanej tablicy po operacji usunięcia. Wyrażenie „myarray [@]” służy do drukowania tablicy, w której symbol „@” reprezentuje indeks tablicy.

#!/bin/bash
Deklaruj -a Myarray = („Panda” „sowa” „cat” „królik” „niedźwiedź”)
Unset myarray [2]
echo "$ myarray [@]"

Gdy usuwamy wartość indeksu „2” z określonej tablicy za pomocą polecenia UNSET, wartość umieszczona wewnątrz tablicy przy indeksie „2” to „CAT”, który jest usuwany z tablicy. A zmodyfikowana tablica jest wyświetlana przy następujących wyjściach. Zauważ, że indeks tablicy przez cały czas zaczyna się od liczby „0”:

Przykład 2: Usuwanie określonego elementu tablicy w skrypcie BASH za pomocą względnego indeksu

Elementy są odsyłane z ostatniego elementu, jeśli używamy wskaźników takich jak -1, -2 i tak dalej. W ten sposób możemy je również usunąć lub zmienić dla poprzednich elementów za pomocą zamawiania względnego. Miejmy następujący skrypt bash, w którym pierwszym krokiem deklarowania zmiennej dla tablicy jest użycie polecenia „Declare -a”. Zmienna tablicy nazywa się „Językami”. Wstajemy w nim cztery różne języki programowania wraz z numerem indeksu. Następnie mamy polecenie Bash Unset, w którym zmienna „Języki” jest ustawiana z indeksem względnym „-3”, aby usunąć element tablicy. Następnie używamy wyrażenia „$ języki [@]”, aby wydrukować nowo utworzoną tablicę po użyciu polecenia echo. Konkretny element jest niezainteresowany z tablicy.

#!/bin/usr/env bash
Deklaruj -języki = (
[0] = java
[1] = Kotlin
[2] = Python
[3] = Scala
)
języki unset [-3]
echo "$ języki [@]"

Wyjście wyświetla tablicę, w której wartość „Kotlin” jest usuwana, ponieważ indeks „-3” wskazuje kierunek indeksu odwrotnego, który jest indeksem „1” z kolejności domyślnej. Stąd stosunkowo prostsze jest odwołanie się do określonych elementów w dużej danej tablicy.

Przykład 3: Usuwanie określonego elementu tablicy w skrypcie Bash za pomocą Regex

Niedawna implementacja skryptu Bash polegającego na usunięciu określonego elementu z danej tablicy jest bardzo prosta do osiągnięcia. Teraz mamy inny przypadek, w którym elementy jednej tablicy są usuwane z innej tablicy. Poniższe skrypty Bash usuwają dowolny element z tablicy, który pasuje do regularności. Najpierw deklarujemy zmienną „ARR1”, która jest dostosowana o pewną wartość całkowitą.

Następnie tworzymy kolejną tablicę, która jest „ARR2” i wstawiamy dwie wartości liczb całkowitych, które są również obecne w pierwszej tablicy, „ARR1”. Następnie definiujemy zmienną „wynik”, która ma wyrażenie („$ arr1 [@]”), która pokazuje, że zmienna wyników ma wszystkie elementy tablicy tablicy „arr1” do wydrukowania. Następnie ustawiamy for pętkę, która iteruje wszystkie elementy tablicy, które są obecne w tablicy „ARR2” i przechowują je w obiekcie „Ele”.

Następnie używamy zmiennej „Wynik”, która jest dostarczana z wyrażeniem „($ $ [@]/*$ ele*/)”. Wyrażenie „Wynik [@]” przechowuje elementy tablicy „ARR1”, a wyrażenie „$ ele” ma elementy tablicy „ARR2”. „ARR2” dopasowuje te elementy z tablicy „ARR1” i usuwa je z tablicy „ARR1”. Polecenie Echo jest następnie wdrażane, aby wyświetlić pozostałe elementy tablicy „ARR1”.

#!/bin/bash
ARR1 = (11 22 33 44 55 66 77 88 99)
ARR2 = (22 77)
wynik = ("$ arr1 [@]")
dla ele w „$ arr2 [@]”; Do
wynik = ($ wynik [@]/*$ ele*/)
zrobione
echo "arr1 nowe elementy to: $ wynik [@]"

Po dopasowaniu Regex wyjście wyświetla element, w którym elementy „22” i „77” są usuwane z „ARR1”.

Przykład 4: Usuwanie całej tablicy w skrypcie Bash

Wspomniane skrypty bash służą do usunięcia poszczególnych elementów z tablicy. Możemy również usunąć całe elementy tablicy, określając zmienną tablicy do polecenia UNSET. Tutaj wdrażamy operację usunięcia w skrypcie Bash. Pierwszym krokiem jest deklaracja tablicy, którą osiągnęliśmy za pomocą polecenia „Deklaruj -a”.

Definiujemy zmienną dla tablicy jako „Strarray”. Następnie dodajemy elementy ciągów w tablicy. Następnie wywołujemy polecenie UNSET, które przyjmuje nazwę tablicy „Strarray” bez żadnej wartości indeksu. Takie podejście służy do usuwania całej tablicy w skrypcie Bash. Ostatecznie używamy dwóch poleceń ECHO do wyświetlania tablicy i kluczy tablicy.

#!/bin/bash
Declare -a Strarray = („One” „dwa” „trzy” „cztery” „pięć”)
Unset Strarray
echo $ !Strarray [@]
echo $ !Strarray [@]

Próbujemy wydrukować wyżej wspomniane elementy i klawisze skryptu, które nie zwraca żadnego wyjścia. Ponieważ tablica już nie istnieje, stąd zwrotny wynik.

Przykład 5: Usuwanie określonego elementu tablicy w skrypcie Bash za pomocą innego podejścia

Poprzednie przykłady używają polecenia UNSET, aby usunąć cały lub określony element z danej tablicy. Tam mamy inną technikę usuwania konkretnego elementu tablicy bez użycia polecenia UNSET. Następujący skrypt bash jest zdefiniowany z tablicą, która ma pierwsze pięć znaków. Ta tablica jest przechowywana w zmiennej „Chararray”.

Następnie zmienna „Chararray” jest ponownie wywoływana i jest określona z wyrażeniem „$ chararray [@]: 1”. Wyrażenie usuwa element tablicy, który jest obecny przy pierwszym wystąpieniu w tablicy, ponieważ wartość indeksu „1” jest dostarczana do „Chararray [@]”. Po wyeliminowaniu określonego elementu z tablicy, polecenie ECHO generuje tablicę, która zawiera wszystkie elementy oprócz usuniętego elementu.

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

Element znaku „A” nie jest pokazany w następującej tablicy wyjściowej, ponieważ jest usuwany za pomocą wyrażenia „$ chararray [@]: 1”.

Wniosek

Artykuł o usunięciu konkretnego elementu z tablicy w skrypcie Bash jest wyjaśniony koncepcyjnie. Tutaj użyliśmy polecenia UNSET do usunięcia całej tablicy i konkretnego elementu z tablicy. Polecenie UNSET usuwa również element z tablicy poprzez podejście względne wskaźniki. Regex mecz jest również podawany w celu usunięcia elementu z tablicy. Dodatkowo zawarliśmy regex mecz, aby usunąć określony element z tablicy.