Esempi di stringhe split Bash

Esempi di stringhe split Bash
Dobbiamo dividere i dati di stringa per vari scopi nella programmazione. Molti linguaggi di programmazione hanno una funzione integrata denominata "divisione" per dividere qualsiasi dati di stringa in più parti. Ma non esiste una funzione integrata in Bash per dividere la stringa. Normalmente, vengono utilizzati i delimitatori singoli o multipli per dividere qualsiasi dati di stringa. Come puoi dividere la stringa in bash viene mostrato in questo tutorial usando diversi esempi.


Utilizzando la variabile $ IFS

La variabile Special Shell $ IFS viene utilizzata in Bash per dividere una stringa in parole. La variabile $ IFS è chiamata separatore di campo interno (IFS) utilizzato per assegnare il delimitatore specifico per la divisione della stringa. I confini delle parole sono identificati in bash da $ ifs. Lo spazio bianco è il valore delimitatore predefinito per questa variabile. Qualsiasi altro valore come "\ t", '\ n', '-' ecc. Può essere usato come delimitatore. Dopo aver assegnato il valore nella variabile $ IFS, il valore della stringa può essere letto da due opzioni. Questi sono '-r' e '-a'. L'opzione, '-r' viene utilizzata per leggere Backslash (\) come personaggio piuttosto che sfuggire al carattere e l'opzione '-A' viene utilizzata per archiviare le parole split in una variabile di array. La stringa può essere divisa senza usare la variabile $ ifs in bash. Modi diversi per dividere i dati di stringa (con $ ifs o senza $ ifs) sono mostrati nei seguenti esempi.

Esempio-1: stringa divisa in base allo spazio

Il valore della stringa è diviso per lo spazio bianco per impostazione predefinita. Crea un file denominato 'split1.sh 'e aggiungi il seguente codice. Qui, la variabile $ text viene utilizzata per assegnare un valore di stringa. La variabile shell, $ IFS viene utilizzata per assegnare il carattere che verrà utilizzato per dividere i dati della stringa. Lo spazio è usato in questo script come separatore. L'opzione '-A' viene utilizzata con il comando di lettura per archiviare i dati divisi in una variabile di array denominata $ Strarr. "Per" loop viene utilizzato per leggere ogni elemento dell'array, $ Strarr.

split1.sh

#!/Bin/Bash
#Definire il valore della stringa
text = "Benvenuti a LinuxHint"
# Imposta lo spazio come delimitatore
Ifs = "
#Redi le parole divise in un array basato sul delimitatore dello spazio
Leggi -A Strarr <<< "$text"
#Count le parole totali
echo "Ci sono $ #strarr [*] parole nel testo."
# Stampa ogni valore dell'array utilizzando il loop
per val in "$ strarr [@]";
Fare
printf "$ val \ n"
Fatto

Produzione:

Esegui lo script.

$ Bash Split1.sh

Il seguente output apparirà dopo aver eseguito lo script.

Esempio-2: stringa divisa in base a un carattere particolare

Qualsiasi carattere specifico può essere usato come separatore per dividere il valore della stringa. Crea un file denominato split2.sh e aggiungi il seguente codice. Qui, il nome del libro, il nome dell'autore e il valore del prezzo vengono presi aggiungendo la virgola () come stringa di input. Successivamente, il valore della stringa è diviso e archiviato in un array basato sul valore della variabile della shell, $ ifs. Ogni valore degli elementi dell'array è stampato dal valore dell'indice.

split2.sh

#!/Bin/Bash
#Redi il valore della stringa
echo "Immettere il nome del libro, il nome dell'autore e il prezzo separando la virgola. "
Leggi il testo
# Imposta la virgola come delimitatore
Ifs = ','
#Redi le parole divise in un array basato sul delimitatore della virgola
Leggi -A Strarr <<< "$text"
#Print le parole divise
Echo "Nome del libro: $ Strarr [0]"
Echo "Nome autore: $ Strarr [1]"
Echo "Price: $ Strarr [2]"

Produzione:

Esegui lo script.

$ Bash Split2.sh

Il seguente output apparirà dopo aver eseguito lo script.

Esempio-3: dividere la stringa senza variabile $ IFS

Questo esempio mostra come il valore della stringa può essere diviso senza usare $ ifs in bash. Crea un file denominato 'split3.sh' e aggiungi il seguente codice. Secondo la sceneggiatura, un valore di testo con il colon(:) deve prendere come input per la divisione. Qui, il comando "readarray" con -d opzione viene utilizzato per dividere i dati della stringa. L'opzione '-D' viene utilizzata per definire il carattere del separatore nel comando come $ ifs. Successivamente, "per" loop viene utilizzato per stampare gli elementi dell'array.

split3.sh

#!/Bin/Bash
#Redi la stringa principale
echo "Immettere la stringa con il colon (:) per dividere"
Leggi il mainstr
#Split la stringa in base al delimitatore, ":"
readarray -d: -t Strarr <<< "$mainstr"
printf "\ n"
# Stampa ogni valore dell'array usando loop
per ((n = 0; n < $#strarr[*]; n++))
Fare
echo "$ Strarr [n]"
Fatto

Produzione:

Esegui lo script.

$ bash divish3.sh

Il seguente output apparirà dopo aver eseguito lo script.

Esempio-4: dividi la stringa con un delimitatore multi-character

Il valore della stringa è diviso da un delimitatore a singolo carattere in tutti gli esempi precedenti. Come è possibile dividere la stringa usando il delimitatore multi-character è mostrato in questo esempio. Crea un file denominato 'Split4.sh' e aggiungi il seguente codice. Qui, la variabile $ text viene utilizzata per archiviare un dati di stringa. La variabile del delimitatore $ viene utilizzata per assegnare un dati multi-character utilizzato come delimitatore nelle dichiarazioni successive. La variabile $ myarray viene utilizzata per archiviare ogni dati diviso come elemento array. Infine, tutti i dati divisi sono stampati utilizzando 'per' loop.

split4.sh

#!/Bin/Bash
#Defina la stringa da dividere
text = "LearnHtmllearnphplearnmysqllearnjavascript"
#Define Delimitatore multi-character
delimiter = "impara"
#Concatena il delimitatore con la stringa principale
string = $ text $ delimitatore
#Split il testo in base al delimitatore
myArray = ()
mentre [[$ string]]; Fare
myArray+= ("$ String %%" $ delimitatore "*")
String = $ String#*"$ Delimiter"
Fatto
#Print le parole dopo la divisione
per valore in $ myarray [@]
Fare
echo -n "$ value"
Fatto
printf "\ n"

Produzione:

Esegui lo script.

$ bash divish4.sh

Il seguente output apparirà dopo aver eseguito lo script.

Conclusione:

I dati della stringa devono dividere per diversi scopi di programmazione. In questo tutorial vari modi per dividere i dati delle stringhe in bash sono. Speranza, dopo aver praticato gli esempi di cui sopra, i lettori saranno in grado di dividere tutti i dati di stringa in base ai loro requisiti.

Per ulteriori informazioni, guarda il video!