Manipulacion De Strings
Manipulación de strings en bash script
Section titled “Manipulación de strings en bash script”1. Definir strings
Section titled “1. Definir strings”cadena="Hola Mundo"- Siempre usar comillas sí hay espacios.
- No existen tipos como en otros lenguajes, todo es texto.
2. Longitud de un string
Section titled “2. Longitud de un string”echo "$(#cadena)" ## 103. Substrings
Section titled “3. Substrings”echo "$\{cadena:0:4\}" ## Hola (desde índice 0, tomar 4)echo "$\{cadena:5\}" ## Mundo (desde índice 5 hasta el final)4. Reemplazos dentro de un string
Section titled “4. Reemplazos dentro de un string”texto="banana"
echo "\${texto/na/NA}" ## baNAna (primer reemplazo)echo "\${texto//na/NA}" ## baNANA (todos los reemplazos)
echo "\${texto/na/}" ## baana (borra primer "na")echo "\${texto//na/}" ## baa (borra todos "na")5. Eliminar prefijos y sufijos
Section titled “5. Eliminar prefijos y sufijos”archivo="documento.txt"
echo "\${archivo%.txt}" ## documento (quita sufijo .txt)echo "\${archivo#doc}" ## umento.txt (quita prefijo doc) # Con doble signo borra lo más largo ruta="/home/user/docs/file.txt" echo "{"\${ruta##*/}"}" # file.txt (quita todo hasta el último /) echo "{"\${ruta %%/*}"}" # vacío (quita todo desde el primer /)6. Concatenar strings
Section titled “6. Concatenar strings”nombre="Francisco"saludo="Hola, $nombre"echo "$saludo"También:
full="Hola"full+=" Mundo"echo "$full" ## Hola Mundo7. Convertir mayúsculas / minúsculas (Bash 4+)
Section titled “7. Convertir mayúsculas / minúsculas (Bash 4+)”texto="hola mundo"
echo "\${texto^^}" ## HOLA MUNDOecho "\${texto,,}" ## hola mundo8. Buscar dentro de un string
Section titled “8. Buscar dentro de un string”cadena="programacion"if [[ "$cadena" == *"grama"- ]]; thenecho "Contiene 'grama'"fi9. Dividir un string (split)
Section titled “9. Dividir un string (split)”Con IFS (Internal Field Separator):
frase="uno dos tres"IFS=" " read -r -a palabras <<< "$frase"
echo "\${palabras[0]}" ## unoecho "\${palabras[1]}" ## dosecho "\${palabras[2]}" ## tres10. Juntar un array en string
Section titled “10. Juntar un array en string”lista=("a" "b" "c")echo "\${lista[*]}" ## a b cecho "\${lista[@]}" ## a b cCon separador personalizado:
IFS=","; echo "\${lista[*]}" ## a,b,c11. Expresiones regulares en strings
Section titled “11. Expresiones regulares en strings”cadena="abc123"if [[ "$cadena" =~ ^[a-z]+[0-9]+$ ]]; thenecho "Coincide con letras seguidas de números"fi12. Lectura carácter por carácter
Section titled “12. Lectura carácter por carácter”texto="Hola"for (( i=0; i<\$; i++ )); doecho "\${texto:$i:1}"doneImprime cada letra en una línea.
En resumen:
- ${“} → longitud
- ${
{str:pos:len}} → substring - ${
{str/patrón/reemplazo}} → reemplazo - ${
{str%patrón}} / ${{str#patrón}} → quitar prefijo/sufijo - ${
{str^^}} / ${{str,,}} → mayúsculas/minúsculas - IFS + read -a → split