Stringa split bash in array

Stringa split bash in array
Potresti trovarti in molte situazioni in cui devi dividere i valori di stringa in array o altre strutture di dati mentre si lavora su uno script bash in un sistema Linux. Qui, devi cancellare che Bash non ci fornisce la funzione divisa integrata per dividere qualsiasi stringa. Ma c'è sempre un'alternativa a tali problemi. Quindi, useremo i delimitatori per convertire o dividere alcune stringhe in un array. Cominciamo a guardare alcuni esempi all'interno di Ubuntu 20.04. Apri prima il terminale della shell utilizzando "Ctrl+Alt+T" sul desktop.

Esempio 01

Abbiamo dichiarato una variabile "STR" nella shell con un valore di stringa. Qui, abbiamo usato la variabile "IFS" come delimitatore per dividere una stringa "STR". Il delimitatore "IFS" contiene "spazio" come valore. Ciò significa che la stringa si divide in un array usando lo spazio tra i suoi valori. Ora, il ciclo "per" viene usato qui per iterare la stringa "STR". All'interno della clausola "do", ogni elemento di una variabile "STR" verrà visualizzato come un array. Al termine del ciclo, il terminale visualizza la stringa in un modulo di array secondo l'immagine in basso.

Esempio 02

Abbiamo un altro esempio per ottenere un output un po 'diverso. Puoi vedere chiaramente che la stringa contiene "," carattere dopo ogni parola in essa. Questo personaggio speciale verrà utilizzato come delimitatore. Quindi, abbiamo dichiarato "", come valore per la variabile "IFS".

] Il ciclo "per" è stato nuovamente inizializzato per iterare la variabile stringa "STR". All'interno della clausola "do" del ciclo "per", l'istruzione Echo è stata utilizzata per visualizzare ciascuna parola separatamente con il numero dell'indice come separata dal valore della variabile "IFS". Dopo la fine del ciclo, il programma visualizza ogni parola di stringa separatamente sotto forma di un array. Il carattere "", è responsabile di questo tipo di divisione tra i valori della stringa. Di conseguenza, abbiamo 5 valori sotto forma di un array da una variabile singola "STR".

Esempio 03

Facciamo un altro esempio di dividere una stringa in un array all'interno del file bash. Quindi, devi creare un file bash "Test.sh "con una query touch nel guscio, come menzionato di seguito.

$ touch test.sh

Ora, apri il file appena creato in un editor per scrivere uno script bash. A questo scopo abbiamo utilizzato l'editore "GNU Nano". Puoi utilizzare anche l'editor VIM.

$ nano test.sh

All'interno del file bash, abbiamo aggiunto prima l'estensione bash per rendere eseguibile questo codice con il comando bash nella shell. Successivamente, una "STR" variabile è stata dichiarata e inizializzata con un valore di stringa lungo in esso. La variabile "IFS" è stata dichiarata e assegnata con un valore "spazio". L'istruzione di lettura è stata usata qui per leggere i dati da una variabile stringa "STR" come array con l'aiuto del flag "-ra" e salvata nella nuova variabile "ARR".

L'istruzione Echo calcola e visualizza le dimensioni di una variabile "arr", i.e., vettore. Il ciclo "per" è qui per iterare i valori dei valori dell'array, i.e., "ARR" in una sequenza e visualizzato all'interno della shell usando l'istruzione printf. Il programma termina qui. Salva il tuo codice con "Ctrl+S" e lascia l'editor utilizzando il collegamento "Ctrl+X".

Esegui il tuo script bash appena creato con il comando bash insieme al nome di un file bash, i.e., "test.sh". L'esecuzione dello script bash mostra prima la dimensione di una stringa "str" ​​i.e., Vettore. Successivamente, il terminale ha visualizzato i valori di una variabile stringa sotto forma di un array, i.e., ogni parola separata. Un totale di 9 parole sono state visualizzate sulla shell, come mostrato di seguito.

$ Bash Test.sh

Esempio 04

Facciamo un'altra illustrazione per dividere una stringa in un array. Quindi, apri lo stesso file di codice e aggiorna la variabile String "STR". Abbiamo aggiunto 6 parole nella stringa separata da una virgola. Questa virgola verrà utilizzata come delimitatore nella variabile "IFS". L'istruzione di lettura ha letto le parole di una stringa "STR" come un array separatamente e salvando ciascuno di essi in una variabile "arr". Il delimitatore funziona qui e separa ogni parola da una stringa.

Le 6 dichiarazioni di eco sono state utilizzate qui per visualizzare ogni valore della variabile "ARR" usando gli indici delle parole. Puoi vedere la sintassi per l'assunzione di ogni valore per indice nell'immagine mostrata.

Dopo aver eseguito il codice nella shell con l'aiuto di una query bash, abbiamo 6 righe di output. Ogni parola di una stringa viene salvata separatamente nella variabile dell'array "arr" e visualizzata con l'aiuto degli indici.

$ Bash Test.sh

Esempio 05

Facciamo il nostro ultimo esempio di dividere un valore di stringa in un array. Questa volta, non stiamo usando la variabile "IFS" come delimitatore per dividere una stringa. Useremo il flag "TR" per farlo. Quindi, apri il file "Test.sh "in un nano editore per aggiornarlo. Aggiungi l'estensione bash alla prima riga.

La variabile del tipo di stringa "STR" è stata inizializzata. Un'altra variabile, "ARR" è stata utilizzata il valore "STR" variabile e dividendolo in parti usando il flag "TR". Il delimitatore "TR" contiene spazio come valore. Il ciclo "per" sta iterando i valori "arr" variabili con l'aiuto degli indici. Ogni valore verrà visualizzato separatamente sotto forma di un array.

Dopo aver eseguito il codice bash, abbiamo ottenuto il risultato in un modulo di array. Ogni parola in una stringa "str" ​​è separata e convertita in un valore indipendente, i.e., Elemento array.

$ Bash Test.sh

Conclusione

In questo articolo, abbiamo discusso di diversi esempi per dividere un valore di stringa in un array. A tal fine, abbiamo usato i metodi delimitante "IFS" e "TR". Tutti gli esempi sono abbastanza facili da capire e possono essere implementati senza alcun problema.