Manipulacion De Strings
Manipulación de strings en Bash
Section titled “Manipulación de strings en Bash”Todo es texto. Expansiones ${…} sobre variables.
cadena="Hola Mundo"Operaciones
Section titled “Operaciones”| Concepto | Significado | Ejemplo |
|---|---|---|
${#var} | Longitud. | ${#cadena} → 10 |
${var:pos:len} | Substring. | ${cadena:0:4} → Hola |
${var:pos} | Desde pos hasta el final. | ${cadena:5} → Mundo |
${var/pat/rep} | Primer reemplazo. | ${texto/na/NA} |
${var//pat/rep} | Todos los reemplazos. | ${texto//na/NA} |
${var%suf} / ${var%%suf} | Quitar sufijo (corto / largo). | ${archivo%.txt} |
${var#pref} / ${var##pref} | Quitar prefijo (corto / largo). | ${ruta##*/} → basename |
${var^^} / ${var,,} | Mayúsculas / minúsculas (Bash 4+). | ${texto^^} |
texto="banana"echo "${texto/na/NA}" # baNAnaecho "${texto//na/NA}" # baNANA
archivo="documento.txt"echo "${archivo%.txt}" # documento
ruta="/home/user/docs/file.txt"echo "${ruta##*/}" # file.txtConcatenar, split, regex
Section titled “Concatenar, split, regex”nombre="Francisco"saludo="Hola, $nombre"full="Hola"; full+=" Mundo"
# split con IFSfrase="uno dos tres"IFS=" " read -r -a palabras <<< "$frase"echo "${palabras[0]}" # uno
lista=("a" "b" "c")IFS=","; echo "${lista[*]}" # a,b,c
# contiene / regexcadena="programacion"[[ "$cadena" == *grama* ]] && echo "ok"[[ "abc123" =~ ^[a-z]+[0-9]+$ ]] && echo "match"Carácter a carácter:
texto="Hola"for (( i=0; i<${#texto}; i++ )); do echo "${texto:$i:1}"doneDocs: Shell Parameter Expansion.