BASH-ohjelmointi

Poista tietty elementti Bash-taulukosta

Poista tietty elementti Bash-taulukosta
Vaikka koko prosessi ei ole kovin yksinkertainen ja saattaa tuntua hakkeroinnilta, voit ehkä poistaa elementin olemassa olevasta taulukosta. Voisimme käyttää useampaa kuin yhtä menetelmää elementin poistamiseksi. Yksi menetelmistä on ”unset”, jota käytetään poistamaan elementti tietystä hakemistosta ja korvaamaan sen jälkeen jollakin muulla taulukolla. Useita muita elementtijoukkoja voidaan poistaa käyttämällä myös:. Voit poistaa luetteloelementin lopusta, mutta vain yksinäisen käyttämällä pop () -menetelmää. Otetaan joitain esimerkkejä tästä.

Esimerkki 01: Poista elementti etuliitteiden vastaavuudella

Ensimmäinen menetelmä; tietyn elementin poistaminen taulukosta on etuliitteitä vastaavia. Kirjaudu sisään miltä tahansa Linux-jakelulta, jota olet tällä hetkellä käyttänyt, ja avaa siinä oleva pääte.  Luo tiedosto “syöte.sh ”. Avaa tämä tiedosto kotihakemistostasi ja kirjoita alla oleva koodi siihen.

Selitetään tämä koodi askel askeleelta. Tietyn elementin poistamiseksi sinun on ensin luotava taulukko. Joten, luodaan taulukko nimeltä "array" ja määritetään sille joitain arvoja, koska olen määrittänyt sille kolme arvoa; aqsa, raza ja saeed.

taulukko = (aqsa raza saeed)

Nyt olemme luoneet toisen muuttujan, "delete", ja antaneet sille samanlaisen arvon kuin "matriisissa". Todellisuudessa tätä tekniikkaa käytetään poistamaan etuliitteiden elementit, jotka muistuttavat $ delete, eivät olennaisesti kokonaisia ​​elementtejä.

delete = saeed

Sen jälkeen olemme käyttäneet kaikulausetta muiden matriisien kuin samojen etuliitteiden elementtien tulostamiseen. Tässä on koodi tehdä niin:

echo $ array [@] / $ delete

Kun olet työskennellyt merkkijonojen kanssa, sinun on käytettävä samaa komentosarjaa muutamalla muutoksella kuin alla:

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

Näet tuotoksen alla. Se näyttää kaikki matriisin elementit ohittaen arvon, joka on samanlainen kuin etuliitteiden muuttuja "$ delete".

Jos joku haluaa poistaa useamman kuin yhden tietyn elementin taulukosta, hän voi tehdä sen helposti. Kirjoita vain alla oleva koodi tiedostoon. Selitetään tämä koodi.

Määritä taulukon samanlaiset arvot uuteen muuttujaan, koska olen määrittänyt kaksi arvoa muuttujalle $ delete.

poista = (aqsa raza)

Nyt käytämme ”for” -silmukkaa sovittamaan etuliitetyt arvot taulukon kanssa muuttujan $ delete kanssa. ”For” -silmukka vastaa arvoja $ delete ja tekee toisen taulukon, jolla ei olisi samanlaisia ​​arvoja.

delille kohteessa $ delete [@]
tehdä
array = ("$ array [@] / $ del")
tehty
echo $ array [@] / $ delete

Suorituksen yhteydessä se näyttää jäljellä olevan arvon, joka on "saeed".

Esimerkki 02: Poista elementti Unset-komennolla

Toinen menetelmä on "unset", jota käytetään poistamaan elementti tietystä hakemistosta ja kopioimalla se tietylle uudelle taulukolle. Tämän skenaarion aikana sitä ei ole pakko vain poistaa. Koska unset ei poista elementtiä, se vain määrittää taulukon nollan merkkijonon tietylle hakemistolle. Kirjoita alla oleva koodi tiedostoon.

Tässä olemme määrittäneet globaalin taulukon avainsanalla "julista", jota seuraa "-a". Olemme määrittäneet sille joitain merkkijonoarvoja ja tulostaneet kaikki matriisin arvot.

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

Poistamme indeksin 2 arvon taulukosta ja julistamme toisen tyhjän taulukon nimeltä "array2".

poista 'matriisi [2]'
julista -a taulukko2 = ()

Lisää sen jälkeen inkrementtimuuttuja i = 0 käyttämällä "for" -silmukkaa tarkistaaksesi ensimmäisen taulukon elementin ja määritä ensimmäisen taulukon arvot toiselle taulukolle, joka on "array2".

i = 0
kohteelle $ array [@]
tehdä
array2 [$ i] = $ -elementti
((++ i))
Tehty
echo $ array [@]

Kun tulostat vanhan taulukon uudelleen, se ei näytä poistamatonta elementtiä, mutta kaikkia muita elementtejä. Kokeillaan joitain kaikulauseita tarkistaaksemme onko asetettu elementti paikoillaan vai ei. Ensimmäisessä kaikulausekkeessa näytetään viesti yhdessä taulukon tietyn indeksinumeron kanssa. Voit nähdä, että koska ensimmäinen arvo on jo taulukossa, se näytetään ja toinen arvo on määrittelemätön; siksi se ei näy.

kaiku “1st arvo on $ array [1], 2nd arvo on $ array [2] "

On kirjoitettu toinen kaikulauseke, jossa olemme esittäneet toisen taulukon "array2" sisällön seuraavasti:

echo $ array2 [@]

Viimeisessä ja kolmannessa kaikulausekkeessa olemme esittäneet toisen taulukon "matriisi2" kaksi erityisarvoa seuraavasti:

kaiku “1st arvo on $ array2 [1], 2nd arvo on $ array2 [2] "

Suorituksen yhteydessä saat alla olevan tuotoksen.

Esimerkki 03: Poista elementti alaryhmien avulla

Tässä esimerkissä teemme uusia osa-alueita elementin poistamiseksi määritetystä taulukosta. Alla olevan koodin kuvaus on annettu.

Määritetään taulukko "arr" ja määritetään sille joitain arvoja seuraavasti:

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

Tulosta nyt tämä taulukko echo-käskyllä ​​ja löydämme matriisin arvot lähtökohtana.

kaiku $ arr [@]

Tämän menetelmän erittäin tärkeä ja tärkeä vaihe on tehdä määritellystä taulukosta alaryhmät. Tehdään siis kaksi matriisia vanhasta taulukosta käyttämällä hakemistoja seuraavasti:

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

Yllä olevassa koodissa käytimme vanhaa taulukkoa määritelläksesi uuden alimerkkijonon asettamalla indeksit. Kohdassa ”: 0: 2” kaksoispisteen jälkeinen ensimmäinen numero edustaa indeksiarvoa, joka sisällytetään aliryhmään, kun taas kaksoispisteen jälkeinen toinen indeksinumero poistetaan aliryhmästä. Tämä tarkoittaa, että uudella alaryhmällä ei ole todellisen taulukon "arr" indeksin 2 arvoa, joka on "e3". ”()” -Sulkeita käytetään alaryhmien yhdistämiseen ja uuden “arr” -taulukon muodostamiseen. Nyt kun suoritat tiedoston, se näyttää vanhan ja uuden taulukon kuten alla.

kaiku $ arr [@]

Johtopäätös

Tässä opetusohjelmassa olemme kokeilleet tehokkaasti kolmea tapaa poistaa elementti taulukosta, esim.g., käyttämällä etuliitteitä, poistamattomia ja alaryhmiä. Toivon, että tämä opas auttaa sinua ymmärtämään elementin poistamisen bash-taulukosta.

Best Linux Distros for Gaming in 2021
The Linux operating system has come a long way from its original, simple, server-based look. This OS has immensely improved in recent years and has no...
Kuinka siepata ja suoratoistaa pelisessiosi Linuxissa
Aikaisemmin pelaamista pidettiin vain harrastuksena, mutta ajan myötä pelialalla tapahtui valtava kasvu tekniikan ja pelaajien määrän suhteen. Peliala...
Parhaat pelit, joita voi seurata käsien seurannalla
Oculus Quest esitteli äskettäin loistavan ajatuksen seurannasta ilman ohjaimia. Yhä kasvavan määrän pelejä ja aktiviteetteja, jotka tukevat tukea joko...