Se hai a che fare con stringhe in bash, potresti aver bisogno di conoscere la lunghezza della stringa.
Per fortuna, ottenere la lunghezza della stringa in bash è semplicissimo. Supponiamo che tu abbia una stringa denominata my_string
. La sua lunghezza può essere estratta come:
${#my_string}
Ecco un esempio per spiegare meglio le cose:
[email protected]:~$ my_string="abhishek"
[email protected]:~$ echo "length is ${#my_string}"
length is 8
È stato facile, vero? Puoi salvare questa lunghezza della stringa in un'altra variabile e usarla in seguito:
[email protected]:~$ my_string="abhishek"
[email protected]:~$ length=${#my_string}
[email protected]:~$ echo "String length is $length"
String length is 8
Come la maggior parte delle altre cose in Linux, questo non è l'unico modo per calcolare la lunghezza delle stringhe in Bash.
Ottieni la lunghezza della stringa in bash usando il comando expr
Vediamo alcuni altri comandi che potrebbero aiutarti a testare la lunghezza della stringa in bash.
Uno di questi comandi è il comando expr. Ha diverse opzioni utili per le opzioni di stringa. Tra questi, length
ti dà la lunghezza di una stringa.
[email protected]:~$ expr length "my string"
9
Poiché il comando expr restituisce la lunghezza, dovresti memorizzarla in una variabile usando la sostituzione del comando.
#!/bin/bash
str="my string"
length=$(expr length "$str")
echo "Length of my string is $length"
Ora, se esegui questo script della shell bash, stamperà la lunghezza:
[email protected]:~$ bash string.sh
Length of my string is 9
Usa awk per ottenere la lunghezza della stringa
AWK è un comando super versatile per la modifica del testo nella riga di comando di Linux. Puoi usarlo anche per calcolare la lunghezza della stringa.
Dovrai usare il comando echo e quindi utilizzare il reindirizzamento della pipe per analizzarlo con awk:
[email protected]:~$ echo "my string" | awk '{print length}'
9
Come puoi vedere, a meno che tu non abbia familiarità con le basi dei comandi awk, non è facile ricordare la sintassi.
Utilizzo del comando wc per calcolare la lunghezza della stringa
Un altro modo per ottenere la lunghezza della stringa in Linux è usare il comando wc. Ora il comando wc viene utilizzato per contare il numero di righe, caratteri in un file.
Puoi fare eco alla stringa e reindirizzarla al comando wc. Il -m
l'opzione fornisce il conteggio dei caratteri.
[email protected]:~$ echo -n "my string" | wc -m
9
Notare il -n
opzione con il comando echo? Questo è importante perché echo aggiunge automaticamente un nuovo carattere di riga \n
alla fine e aumenterà di uno la lunghezza della corda. Con -n
opzione, il comando echo non aggiunge un nuovo carattere di riga.
Puoi usare la sostituzione dei comandi per memorizzare la lunghezza della stringa in una variabile come hai visto negli esempi precedenti.
#!/bin/bash
str="my string"
length=$(echo -n "my string" | wc -m)
echo "Length of my string is $length"
Personalmente, ${#string} è il mio modo preferito per ottenere la lunghezza delle stringhe. Più facile da ricordare.
E tu? Quale metodo preferisci?