Manifichiamo alcune stringhe!
Se hai familiarità con le variabili in bash, sai già che non esistono tipi di dati separati per string, int ecc. Tutto è una variabile.
Ma questo non significa che non hai funzioni di manipolazione delle stringhe.
Nel capitolo precedente, hai imparato gli operatori aritmetici in Bash. In questo capitolo imparerai come manipolare le stringhe usando una varietà di operazioni sulle stringhe. Imparerai come ottenere la lunghezza di una stringa, concatenare stringhe, estrarre sottostringhe, sostituire sottostringhe e molto altro!
Ottieni la lunghezza della stringa
Iniziamo con l'ottenere la lunghezza di una stringa in bash.
Una stringa non è altro che una sequenza (array) di caratteri. Creiamo una stringa denominata distro e inizializza il suo valore su "Ubuntu ”.
distro="Ubuntu"
Ora per ottenere la lunghezza della stringa di distribuzione, devi solo aggiungere #
prima del nome della variabile. È possibile utilizzare la seguente istruzione echo:
[email protected]:~/scripts$ echo ${#distro}
6
Si noti che il comando echo serve per stampare il valore. {#string}
è ciò che dà la lunghezza della stringa.
Concatenazione di due stringhe
Puoi aggiungere una stringa alla fine di un'altra stringa; questo processo è chiamato concatenazione di stringhe.
Per dimostrare, creiamo prima due stringhe str1 e str2 come segue:
str1="hand"
str2="book"
Ora puoi unire entrambe le stringhe e assegnare il risultato a una nuova stringa denominata str3 come segue:
str3=$str1$str2
Non può essere più semplice di così, vero?
Trovare sottostringhe
Puoi trovare la posizione (indice) di una specifica lettera o parola in una stringa. Per dimostrare, creiamo prima una stringa denominata str come segue:
str="Bash is Cool"
Ora puoi ottenere la posizione specifica (indice) della sottostringa cool. Per farlo, usa expr
comando:
[email protected]:~/scripts$ word="Cool"
[email protected]:~/scripts$ expr index "$str" "$word"
9
Il risultato 9 è l'indice in cui la parola "Cool" inizia nella str stringa.
Sto deliberatamente evitando di usare istruzioni condizionali come se, altrimenti perché in questa serie per principianti di bash, le istruzioni condizionali saranno trattate in seguito.
Estrazione di sottostringhe
Puoi anche estrarre sottostringhe da una stringa; vale a dire, puoi estrarre una lettera, una parola o alcune parole da una stringa.
Per dimostrare, creiamo prima una stringa denominata foss come segue:
foss="Fedora is a free operating system"
Ora supponiamo che tu voglia estrarre la prima parola "Fedora" nel foss corda. È necessario specificare la posizione iniziale (indice) della sottostringa desiderata e il numero di caratteri da estrarre.
Pertanto, per estrarre la sottostringa “Fedora”, utilizzerai 0 come posizione di partenza ed estrarrai 6 caratteri dalla posizione di partenza:
[email protected]:~/scripts$ echo ${foss:0:6}
Fedora
Si noti che la prima posizione in una stringa è zero, proprio come nel caso degli array in bash. Puoi anche specificare solo la posizione iniziale di una sottostringa e omettere il numero di caratteri. In questo caso verrà estratto tutto dalla posizione di partenza alla fine della stringa.
Ad esempio, per estrarre la sottostringa "sistema operativo libero" da foss corda; dobbiamo solo specificare la posizione iniziale 12:
[email protected]:~/scripts$ echo ${foss:12}
free operating system
Sostituzione di sottostringhe
Puoi anche sostituire una sottostringa con un'altra sottostringa; ad esempio, puoi sostituire "Fedora" con "Ubuntu" nel foss stringa come segue:
[email protected]:~/scripts$ echo ${foss/Fedora/Ubuntu}
Ubuntu is a free operating system
Facciamo un altro esempio, sostituiamo la sottostringa “free” con “popular”:
[email protected]:~/scripts$ echo ${foss/free/popular}
Fedora is a popular operating system
Dal momento che stai solo stampando il valore con il comando echo, la stringa originale non viene modificata.
Eliminazione di sottostringhe
Puoi anche rimuovere le sottostringhe. Per dimostrare, creiamo prima una stringa denominata fact come segue:
fact="Sun is a big star"
Ora puoi rimuovere la sottostringa "big" dalla stringa fact:
[email protected]:~/scripts$ echo ${fact/big}
Sun is a star
Creiamo un'altra stringa denominata cell:
cell="112-358-1321"
Supponiamo ora di voler rimuovere tutti i trattini dalla cella corda; la seguente istruzione rimuoverà solo la prima occorrenza del trattino nella cella stringa:
[email protected]:~/scripts$ echo ${cell/-}
112358-1321
Per rimuovere tutte le occorrenze di trattino dalla cella string, devi usare le doppie barre come segue:
[email protected]:~/scripts$ echo ${cell//-}
1123581321
Nota che stai usando le istruzioni echo e quindi la stringa di cella è intatta e non modificata; stai solo visualizzando il risultato desiderato!
Per modificare la stringa, è necessario riassegnare il risultato alla stringa come segue:
[email protected]:~/scripts$ echo $cell
112-358-1321
[email protected]:~/scripts$ cell=${cell//-}
[email protected]:~/scripts$ echo $cell
1123581321
Conversione di lettere maiuscole e minuscole in una stringa
Puoi anche convertire una stringa in lettere minuscole o maiuscole. Per prima cosa creiamo due stringhe denominate leggenda e attore:
legend="john nash"
actor="JULIA ROBERTS"
Puoi convertire tutte le lettere nella leggenda stringa in maiuscolo:
[email protected]:~/scripts$ echo ${legend^^}
JOHN NASH
Puoi anche convertire tutte le lettere nella stringa attore in minuscolo:
[email protected]:~/scripts$ echo ${actor,,}
julia roberts
Puoi anche convertire solo il primo carattere della leggenda stringa in maiuscolo come segue:
[email protected]:~/scripts$ echo ${legend^}
John nash
Allo stesso modo, puoi convertire solo il primo carattere dell'attore stringa in minuscolo come segue:
[email protected]:~/scripts$ echo ${actor,}
jULIA ROBERTS
Puoi anche cambiare alcuni caratteri in una stringa in maiuscolo o minuscolo; ad esempio, puoi cambiare le lettere j
e n
in maiuscolo nella leggenda stringa come segue:
[email protected]:~/scripts$ echo ${legend^^[jn]}
JohN Nash
Eccezionale! Questo ci porta alla fine di questo tutorial nella serie per principianti di bash. Scarica il PDF qui sotto e metti in pratica ciò che hai appena imparato.
Bash Capitolo 6 Domande pratiche Problemi e la loro soluzione per mettere in pratica ciò che hai appena appreso in questo capitolo Bash-Capitolo-6-Domande pratiche-Linux-Handbook.pdf28 KB
Spero che ti sia piaciuto fare la manipolazione delle stringhe in bash e dai un'occhiata al prossimo capitolo mentre imparerai come aggiungere abilità decisionali ai tuoi script bash!