Cómo obtener la longitud de una cadena (string) en Shell

ShellShellBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

La programación en Shell es una herramienta poderosa para automatizar tareas y crear flujos de trabajo mediante scripts. Una operación común en Shell es trabajar con cadenas (strings), y entender cómo obtener la longitud de una cadena es una habilidad fundamental. Este tutorial lo guiará a través del proceso de medir la longitud de una cadena utilizando comandos integrados de Shell, y proporcionará ejemplos prácticos para ayudarlo a aplicar este conocimiento en sus propios scripts de Shell.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL shell(("Shell")) -.-> shell/VariableHandlingGroup(["Variable Handling"]) shell(("Shell")) -.-> shell/AdvancedScriptingConceptsGroup(["Advanced Scripting Concepts"]) shell/VariableHandlingGroup -.-> shell/str_manipulation("String Manipulation") shell/AdvancedScriptingConceptsGroup -.-> shell/read_input("Reading Input") shell/AdvancedScriptingConceptsGroup -.-> shell/cmd_substitution("Command Substitution") subgraph Lab Skills shell/str_manipulation -.-> lab-415063{{"Cómo obtener la longitud de una cadena (string) en Shell"}} shell/read_input -.-> lab-415063{{"Cómo obtener la longitud de una cadena (string) en Shell"}} shell/cmd_substitution -.-> lab-415063{{"Cómo obtener la longitud de una cadena (string) en Shell"}} end

Comprender la longitud de una cadena (string) en Shell

En el mundo de la programación en shell, comprender la longitud de una cadena es un concepto fundamental. Saber la longitud de una cadena puede ser crucial para diversas tareas, como la validación de datos, la manipulación de cadenas y la lógica condicional. En esta sección, exploraremos las diferentes formas de obtener la longitud de una cadena en un entorno de shell.

Importancia de la longitud de una cadena en Shell

Determinar la longitud de una cadena es esencial en la programación en shell por varios motivos:

  1. Validación de datos: Comprobar la longitud de una cadena puede ayudar a garantizar que la entrada del usuario o los datos cumplan con requisitos específicos, como una longitud mínima o máxima.
  2. Manipulación de cadenas: Saber la longitud de una cadena te permite realizar diversas operaciones, como extraer subcadenas, rellenar o truncar la cadena.
  3. Lógica condicional: La longitud de una cadena se puede utilizar como una condición en sentencias if o sentencias case, lo que te permite tomar decisiones basadas en el tamaño de la cadena.

Comprender la representación de cadenas en Shell

En la programación en shell, las cadenas (strings) generalmente se representan como una secuencia de caracteres. La longitud de una cadena es el número de caracteres que contiene, incluyendo espacios y caracteres especiales. Es importante tener en cuenta que la representación interna de las cadenas en el shell puede variar dependiendo del shell específico que estés utilizando (por ejemplo, Bash, Zsh o Ksh).

graph LR A[String] --> B[Sequence of Characters] B --> C[Length = Number of Characters]

Al comprender la representación de las cadenas en el shell, puedes utilizar eficazmente los comandos y técnicas integrados para determinar la longitud de una cadena.

Medir la longitud de una cadena (string) con comandos integrados

Los lenguajes de programación en shell a menudo proporcionan comandos y funciones integradas para ayudarte a determinar la longitud de una cadena. En esta sección, exploraremos los métodos más comúnmente utilizados para medir la longitud de una cadena en un entorno de shell.

Usando el operador ${#}

La forma más sencilla de obtener la longitud de una cadena en shell es utilizando el operador ${#}. Este operador devuelve la longitud de la cadena almacenada en la variable.

## Example
string="LabEx"
length=${#string}
echo "The length of the string is: $length"

Salida:

The length of the string is: 5

Utilizando el comando wc

Otra forma de medir la longitud de una cadena es utilizando el comando wc (conteo de palabras). La opción -c de wc devolverá el recuento de caracteres de la entrada, que corresponde a la longitud de la cadena.

## Example
string="LabEx"
length=$(echo -n "$string" | wc -c)
echo "The length of the string is: $length"

Salida:

The length of the string is: 5

Combinando expr y length

También puedes utilizar el comando expr para calcular la longitud de una cadena. La función length de expr devuelve la longitud de la cadena especificada.

## Example
string="LabEx"
length=$(expr length "$string")
echo "The length of the string is: $length"

Salida:

The length of the string is: 5

Estos comandos y técnicas integradas proporcionan una forma sencilla de medir la longitud de una cadena en un entorno de shell. Al entender y utilizar estos métodos, puedes incorporar eficazmente comprobaciones de longitud de cadena en tus scripts de shell.

Ejemplos prácticos y casos de uso

Ahora que hemos explorado los diferentes métodos para medir la longitud de una cadena (string) en shell, profundicemos en algunos ejemplos prácticos y casos de uso donde se puede aplicar este conocimiento.

Validar la entrada del usuario

Un caso de uso común para la longitud de una cadena es validar la entrada del usuario. Por ejemplo, es posible que desees asegurarte de que un nombre de usuario o una contraseña cumplan con ciertos requisitos de longitud.

## Example: Validating a username
read -p "Enter a username: " username
if [ ${#username} -lt 5 ] || [ ${#username} -gt 20 ]; then
  echo "Username must be between 5 and 20 characters long."
else
  echo "Username accepted."
fi

Truncar cadenas

Saber la longitud de una cadena también puede ser útil cuando necesitas truncar o limitar el tamaño de una cadena, como cuando se muestra datos en una terminal de ancho limitado o se formatea la salida.

## Example: Truncating a string to 10 characters
string="LabEx is a great platform."
if [ ${#string} -gt 10 ]; then
  truncated_string="${string:0:10}..."
  echo "Truncated string: $truncated_string"
else
  echo "String: $string"
fi

Salida:

Truncated string: LabEx is a...

Rellenar cadenas

Otro caso de uso práctico es rellenar cadenas a una longitud específica, lo cual puede ser útil para formatear la salida o alinear datos en una estructura similar a una tabla.

## Example: Padding a string to 20 characters
string="LabEx"
padded_string=$(printf "%-20s" "$string")
echo "Padded string: '$padded_string'"

Salida:

Padded string: 'LabEx                '

Al entender cómo medir la longitud de una cadena en shell, puedes incorporar estas técnicas en tus scripts para mejorar la validación de datos, la manipulación de cadenas y el formato de la salida.

Resumen

En este tutorial de programación en Shell, has aprendido cómo medir de manera eficiente la longitud de una cadena (string) utilizando comandos integrados como ${#variable} y wc -c. También has explorado ejemplos prácticos y casos de uso, lo que te ha dotado de los conocimientos necesarios para incorporar la manipulación de la longitud de cadenas en tus scripts de Shell. Con este conocimiento, ahora puedes escribir programas de Shell más robustos y versátiles que puedan manejar datos de cadenas de manera efectiva.