Si está tratando con cadenas en bash, es posible que necesite saber la longitud de la cadena.
Afortunadamente, obtener la longitud de la cadena en bash es muy simple. Digamos que tiene una cadena llamada my_string
. Su longitud se puede extraer como:
${#my_string}
Aquí hay un ejemplo para explicar mejor las cosas:
[email protected]:~$ my_string="abhishek"
[email protected]:~$ echo "length is ${#my_string}"
length is 8
Eso fue fácil, ¿no? Puede guardar esta longitud de cadena en otra variable y usarla más tarde:
[email protected]:~$ my_string="abhishek"
[email protected]:~$ length=${#my_string}
[email protected]:~$ echo "String length is $length"
String length is 8
Como la mayoría de las otras cosas en Linux, esta no es la única forma de calcular la longitud de las cadenas en Bash.
Obtener la longitud de la cadena en bash usando el comando expr
Veamos algunos otros comandos que podrían ayudarte a probar la longitud de la cadena en bash.
Uno de estos comandos es el comando expr. Tiene varias opciones que son útiles para las opciones de cadena. Entre ellos, length
te da la longitud de una cadena.
[email protected]:~$ expr length "my string"
9
Dado que el comando expr genera la longitud, debe almacenarla en una variable usando la sustitución del comando.
#!/bin/bash
str="my string"
length=$(expr length "$str")
echo "Length of my string is $length"
Ahora, si ejecuta este script bash shell, imprimirá la longitud:
[email protected]:~$ bash string.sh
Length of my string is 9
Use awk para obtener la longitud de la cadena
AWK es un comando súper versátil para editar texto en la línea de comandos de Linux. También puede usarlo para calcular la longitud de la cadena.
Tendrá que usar el comando echo y luego usar la redirección de tuberías para analizarlo con awk:
[email protected]:~$ echo "my string" | awk '{print length}'
9
Como puede ver, a menos que esté familiarizado con los conceptos básicos del comando awk, no es fácil recordar la sintaxis.
Usando el comando wc para calcular la longitud de la cadena
Otra forma de obtener la longitud de la cadena en Linux es usar el comando wc. Ahora el comando wc se usa para contar el número de líneas, caracteres en un archivo.
Puede hacer eco de la cadena y canalizarla al comando wc. El -m
opción da el número de caracteres.
[email protected]:~$ echo -n "my string" | wc -m
9
Observe el -n
opción con el comando echo? Eso es importante porque echo agrega automáticamente un nuevo carácter de línea \n
al final y aumentará la longitud de la cadena en uno. Con -n
opción, el comando echo no agrega el carácter de nueva línea.
Puede usar la sustitución de comandos para almacenar la longitud de la cadena en una variable como vio en los ejemplos anteriores.
#!/bin/bash
str="my string"
length=$(echo -n "my string" | wc -m)
echo "Length of my string is $length"
Personalmente, ${#string} es mi forma preferida de obtener la longitud de la cadena. Más fácil de recordar.
¿Y usted? ¿Qué método prefieres?