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=saeedSuccessivamente, 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[@]/$deleteQuando 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=0per 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.