Conceptos básicos del recorte de cadenas
Recortar espacios en blanco iniciales y finales
Una de las operaciones de recorte de cadenas más básicas en Bash es la eliminación de los caracteres de espacio en blanco iniciales y finales de una cadena. Esto se puede lograr utilizando las expansiones de parámetros ${variable#pattern} y ${variable%pattern}.
## Example
variable=" Hello, World! "
trimmed_variable="${variable#"${variable%%[![:space:]]*}"}"
trimmed_variable="${trimmed_variable%"${trimmed_variable##*[![:space:]]}"}"
echo "$trimmed_variable" ## Output: "Hello, World!"
En el ejemplo anterior, primero eliminamos los espacios en blanco iniciales utilizando la expansión ${variable#"${variable%%[![:space:]]*}"}, que elimina el prefijo más largo de la variable que coincide con el patrón "${variable%%[![:space:]]*}" (el prefijo más largo de la variable que contiene solo caracteres de espacio en blanco).
Luego, eliminamos los espacios en blanco finales utilizando la expansión ${trimmed_variable%"${trimmed_variable##*[![:space:]]}"}, que elimina el sufijo más largo de la variable que coincide con el patrón "${trimmed_variable##*[![:space:]]}" (el sufijo más largo de la variable que contiene solo caracteres de espacio en blanco).
Recortar caracteres específicos
Además de recortar espacios en blanco, también puedes recortar caracteres específicos del principio o del final de una cadena utilizando la misma sintaxis de expansión de parámetros.
## Example
variable="---Hello, World!+++"
trimmed_variable="${variable#"${variable%%[-+]*}"}"
trimmed_variable="${trimmed_variable%"${trimmed_variable##*[-+]}"}"
echo "$trimmed_variable" ## Output: "Hello, World!"
En este ejemplo, estamos recortando los caracteres "-" y "+" iniciales y finales de la cadena.
Manejo de cadenas vacías
Es importante tener en cuenta que cuando se trabaja con el recorte de cadenas, también se debe considerar el caso de las cadenas vacías. Bash proporciona el operador :- para manejar este escenario.
## Example
variable=""
trimmed_variable="${variable#"${variable%%[![:space:]]*}"}"
trimmed_variable="${trimmed_variable%"${trimmed_variable##*[![:space:]]}"}"
echo "${trimmed_variable:-"The string is empty."}" ## Output: "The string is empty."
Al utilizar el operador :-, podemos proporcionar un valor predeterminado que se utilizará si la variable recortada es una cadena vacía.