Programmazione BASH

Rimuovere un elemento specifico da un array in Bash

Rimuovere un elemento specifico da un array in Bash
Sebbene l'intero processo non sia molto semplice e possa sembrare un trucco, potresti forse rimuovere un elemento dall'array esistente. Potremmo usare più di un metodo per rimuovere un elemento. Uno dei metodi è "unset", che viene utilizzato per eliminare un elemento da un indice specifico e successivamente sostituirlo con un altro array. Diversi altri insiemi di elementi possono essere eliminati utilizzando: anche. Puoi rimuovere l'elemento della lista dalla fine ma solo quello solitario usando il metodo pop(). Facciamo alcuni esempi per questo.

Esempio 01: rimuovere l'elemento utilizzando la corrispondenza dei prefissi

Il nostro primo metodo; rimuovere un elemento specifico da un array è la corrispondenza dei prefissi. Accedi da qualsiasi distribuzione di Linux che stai attualmente utilizzando e apri il terminale al suo interno.  Crea un file “input.sh". Apri questo file dalla tua directory home e scrivici il codice qui sotto.

Spieghiamo questo codice passo dopo passo. Per eliminare un elemento specifico, devi prima creare un array. Quindi, creiamo un array chiamato "array" e assegniamogli alcuni valori, poiché gli ho assegnato tre valori; aqsa, raza e saeed.

array=(aqsa raza saeed)

Ora abbiamo creato un'altra variabile, "delete", e le assegniamo un valore simile a quello che risiede nell'"array". In realtà, questa tecnica viene utilizzata per eliminare gli elementi dei prefissi che assomigliano a $delete, non essenzialmente elementi interi.

cancella=saeed

Successivamente, abbiamo utilizzato l'istruzione echo per stampare gli elementi di un array diverso da quello degli stessi prefissi. Ecco il codice per farlo:

echo $array[@]/$delete

Quando hai lavorato con le stringhe, devi usare lo stesso script con alcune modifiche come di seguito:

array=( “$array[@]/$cancella” )

Vedrai l'output qui sotto. Mostrerà tutti gli elementi dell'array saltando il valore simile ai prefissi della variabile “$delete”.

Se qualcuno vuole rimuovere più di un elemento specifico dall'array, può farlo facilmente facilmente. Basta scrivere il codice sottostante nel file. Spieghiamo questo codice.

Assegna i valori simili dall'array alla nuova variabile poiché ho assegnato due valori alla variabile $delete.

cancella=(aqsa raza)

Ora useremo il ciclo "for" per abbinare i valori prefissati all'array con la variabile $delete. Il ciclo "for" abbinerà i valori a $delete e creerà un altro array che non avrebbe valori simili.

per del in $elimina[@]
fare
array=(“$array[@]/$del”)
fatto
echo $array[@]/$delete

All'esecuzione, visualizzerà il valore rimanente, che è "saeed".

Esempio 02: rimuovere l'elemento utilizzando il comando di annullamento dell'impostazione

L'altro metodo è "unset", utilizzato per rimuovere un elemento da un indice specifico e duplicarlo in un determinato nuovo array. In tutto questo scenario, non è obbligato solo a disinserire. Poiché unset non elimina un elemento, assegna semplicemente la stringa nulla all'interno di un array a un indice specifico. Scrivi il codice qui sotto nel tuo file.

Qui abbiamo definito un array globale con la parola chiave "declare" seguita da "-a". Gli abbiamo assegnato alcuni valori di stringa e stampiamo tutti i valori di un array.

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

Cancelleremo il valore all'indice 2 da un array e dichiareremo un altro array vuoto chiamato "array2".

disattiva 'array[2]'
dichiarare -a array2=()

Successivamente, aggiungi una variabile di incremento i=0, utilizzando il ciclo "for" per controllare l'elemento nel primo array e assegnare i valori del primo array al secondo array, che è "array2".

io=0
per elemento in $array[@]
fare
array2[$i]=$elemento
((++i))
Fatto
echo $array[@]

Quando stampi di nuovo il vecchio array, non visualizzerà l'elemento non impostato ma tutti gli altri elementi. Proviamo alcune istruzioni echo per verificare se l'elemento unset è al suo posto o no. La prima istruzione echo visualizzerà il messaggio insieme al valore del numero di indice specifico da un "array". Puoi vedere che poiché il primo valore è già presente nell'array, viene visualizzato e il secondo valore non è stabile; quindi, non viene visualizzato.

eco “1sto il valore è $array[1], 2nd il valore è $array[2]”

È stata scritta un'altra istruzione echo in cui abbiamo visualizzato il contenuto del secondo array "array2" come:

echo $array2[@]

Nell'ultima e nella terza istruzione echo, abbiamo visualizzato i due valori specifici del secondo array "array2" come:

eco “1sto il valore è $array2[1], 2nd il valore è $array2[2]”

In esecuzione, otterrai l'output seguente.

Esempio 03: rimuovere un elemento utilizzando i sottoarray

In questo esempio, creeremo nuovi sotto-array per rimuovere un elemento dall'array specificato. Viene fornita la descrizione del codice seguente.

Definiamo un array "arr" e assegniamogli alcuni valori come di seguito:

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

Ora stampa questo array usando l'istruzione echo e troveremo i valori dell'array come output.

echo $arr[@]

Il passaggio cruciale e importante di questo metodo è creare sotto-matrici dell'array definito. Quindi creiamo due array dal vecchio array usando gli indici come:

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

Nel codice sopra, abbiamo usato il vecchio array per definire la nuova sottostringa durante l'impostazione degli indici. In “:0:2”, il primo numero dopo i due punti rappresenta il valore dell'indice, che sarà incluso nella sottomatrice, mentre il secondo numero indice dopo i due punti sarà escluso dalla sottomatrice. Ciò significa che il nuovo sotto-array non avrà il valore dell'indice 2 dell'array reale "arr" che è "e3". Le parentesi "()" vengono utilizzate per unire i sotto-array e creare di nuovo un intero nuovo array "arr". Ora quando esegui il file, visualizzerà il vecchio e il nuovo array come di seguito.

echo $arr[@]

Conclusione

In questo tutorial, abbiamo provato in modo efficiente tre metodi per rimuovere un elemento da un array, e.g., usando prefissi, unset e sub-array. Spero che questa guida ti aiuti a capire la rimozione di un elemento da un array in bash.

Recensione del mouse wireless Microsoft Sculpt Touch
Ho letto di recente del Microsoft Scolpisci il tocco mouse wireless e ho deciso di acquistarlo. Dopo averlo usato per un po', ho deciso di condividere...
Trackpad e puntatore del mouse su schermo AppyMouse per tablet Windows
Gli utenti di tablet spesso mancano il puntatore del mouse, soprattutto quando sono abituati a usare i laptop laptop. Gli smartphone e i tablet touchs...
Il pulsante centrale del mouse non funziona in Windows 10
Il tasto centrale del mouse ti aiuta a scorrere lunghe pagine web e schermate con molti dati. Se si ferma, finirai per usare la tastiera per lo scorri...