En este artículo, veremos cómo obtener la longitud de la string en el script Bash.
Aquí hay algunas formas de obtener la longitud de la string en BASH:
- Usando el operador #
- Usando el ciclo while
- Usando el comando expr
- Usando el comando awk
- Usando el comando wc
Usando estas herramientas y comandos mencionados, podremos obtener la longitud de una variable de string en el script BASH.
Método 1: usar el operador #
#!usr/bin/env bash str="this is a string" n=${#str} echo "Length of the string is : $n "
Podemos usar el operador # para obtener la longitud de la string en BASH, necesitamos encerrar el nombre de la variable entre » {} » y dentro de eso, usamos el # para obtener la longitud de la variable de string . Por lo tanto, usando el operador «#» en BASH, podemos obtener la longitud de la variable de string.
Método 2: usar el ciclo while
En este ejemplo. podemos usar el bucle while junto con el comando de lectura para obtener la longitud de la string. En primer lugar, inicializamos la string a lo que quieras, puede ser una entrada de usuario, un parámetro posicional, etc. Es bastante fácil trabajar con la variable, por lo que creamos una variable para la string y también inicializamos la longitud «n» a 0 Luego, comenzamos el ciclo while leyendo carácter por carácter usando el argumento -n1, es decir, leemos solo el carácter individual de la string completa.
Para cada carácter en la variable «str», es decir, después de cada iteración, incrementamos la longitud «n» en uno. En el ciclo while, estamos leyendo la string «str» con el comando echo junto con el argumento -n que restringe el escape del carácter de nueva línea. Así, al final del bucle, tenemos la longitud de la string en la variable n a la que se puede acceder según los requisitos.
#!usr/bin/env bash str="this is a string" n=0 while read -n1 character; do n=$((n+1)); done < <(echo -n "$str") echo "Length of the string is : $n "
Método 3: Usando el comando expr
#!usr/bin/env bash str="Test String@#$" n=`expr "$str" : '.*'` echo "Length of the string is : $n "
En este ejemplo, estamos usando el comando expr para encontrar la longitud de la string en BASH. El comando expr toma el primer argumento como la variable de string y luego el operador de comparación “:” que cuenta el número de caracteres comunes en la string y la siguiente string proporcionada después del operador “:”. Para calcular la longitud de la string, analizamos la string anterior. Porque ese «.*» es la expresión regular que obtiene 0 o más caracteres del token proporcionado anteriormente. Incluso analizar la string en lugar de «.*» funcionará
n=`expr "$str" : "$str"`
Aquí hemos usado los acentos graves (» ` ` «) pero incluso usando $() no hay tal ventaja de usar el primero sobre el segundo. Ambos tienen el mismo propósito, pero los anidamientos de $( ) son muy efectivos que los acentos graves.
#!usr/bin/env bash str="Test String@#$" n=`expr length "$str"` echo "Length of the string is : $n "
Incluso podemos usar la función incorporada en el comando expr «longitud» que obtiene la longitud de la string como parámetro justo después de la función. El comando de longitud, como sugiere el nombre, nos da la longitud de la string proporcionada o cualquier variable.
Recuerde que para cada fragmento de código que sigue a este, puede usar $() en lugar de acentos graves ( ` ` ).
n=$(expr length "$str")
Método 4: Usando el comando awk
#!usr/bin/env bash str="this is a string" n=`echo $str | awk '{print length}'` echo "Length of the string is : $n "
Incluso podemos usar el comando awk para obtener la longitud de la string. Usamos la función length que está incorporada en awk junto con print que imprime el valor y, por lo tanto, almacena la longitud de la string después de canalizar (» | « ) con el comando echo.
En la expresión, echo $str | awk ‘{print length}’ hacemos eco de la variable de string » str » y luego redirigimos (canalizamos) la salida de la misma al comando awk. En el comando awk, imprimimos la salida de la función de longitud, que toma la variable str y la almacena en la variable » n «.
Método 5: Usando el comando wc
#!usr/bin/env bash str="this is a string" n=`echo -n "$str"|wc -c` echo "Length of the string is : $n "
En esta demostración, hemos usado el comando wc para obtener la longitud de la string. Dentro de este comando, “ echo -n “$str” | wc -c ” el comando echo recibe un argumento -n que no escapa al carácter de nueva línea. A continuación, la salida del comando echo se redirige (canaliza) al comando wc, al que nuevamente se le asigna el argumento -c, que cuenta la cantidad de bytes en la variable proporcionada, incluso podemos usar -m, que también cuenta con precisión la cantidad de caracteres. .
echo -n "$str" | wc -m