Extraer subcadena
Mediante ${cadena:posicion:longitud} podemos extraer una subcadena de otra cadena. Si omitimos :longitud, entonces extraerá todos los caracteres hasta el final de cadena.
Por ejemplo en la cadena string=abcABC123ABCabc:
• echo ${string:0} : abcABC123ABCabc
• echo ${string:0:1} : a (primer caracter)
• echo ${string:7} : 23ABCabc
• echo ${string:7:3} : 23A (3 caracteres desde posición 7)
• echo ${string:7:-3} : 23ABCabc (desde posición 7 hasta el final)
• echo ${string: -4} : Cabc (atención al espacio antes del menos)
• echo ${string: -4:2} : Ca (atención al espacio antes del menos)
Borrar subcadena
Hay diferentes formas de borrar subcadenas de una cadena:
• ${cadena#subcadena} : borra la coincidencia más corta de subcadena desde el principio de cadena
• ${cadena##subcadena} : borra la coincidencia más larga de subcadena desde el principio de cadena
Por ejemplo, en la cadena string=abcABC123ABCabc:
• echo ${string#a*C} : 123ABCabc
• echo ${string##a*C} : abc
Reemplazar subcadena
También existen diferentes formas de reemplazar subcadenas de una cadena:
• ${cadena/buscar/reemplazar} : Sustituye la primera coincidencia de buscar con reemplazar
• ${cadena//buscar/reemplazar} : Sustituye todas las coincidencias de buscar con reemplazar
Por ejemplo, en la cadena string=abcABC123ABCabc:
• echo ${string/abc/xyz} : xyzABC123ABCabc.
• echo ${string//abc/xyz} : xyzABC123ABCxyz.