Sustitución de parámetros

Los sistemas Linux y otros Unix traen las típicas herramientas como cut, awk y sed para reemplazar o recortar partes de una variable, pero los verdaderos "gurus" utilizan la sustitución de parámetros. Vamos a explicar esto en varios pasos:

1-) Las variables pueden ser referenciadas con $var o con ${var}
VAR='lorem ipsum';
echo $VAR;
echo ${VAR};
2-) La longitud de una variable la obtenemos con ${#VAR}
echo ${#VAR} -> 1
3-) Obtenemos un substring de la variable con ${VAR:POS}
echo ${VAR:6} -> ipsum
4-) También podemos obtener un substring del tamaño que deseamos con ${VAR:POS:LON}
echo ${VAR:0:6} -> lorem
5-) Si deseamos dividir según un patrón de izquierda a derecha utilizamos ${var#pat} o ${var##pat}
VAR2='lorem,ipsum.,datum.sanctum'
echo ${var2#*,} -> ipsum.,datum.sanctum
echo ${var2##*,} -> datum.sanctum
6-) De derecha a izquierda es ${var%pat} o ${var%%pat}
echo ${var2%,*} -> lorem,ipsum.
echo ${var2%%,*} -> lorem
7-) La sustitución es igual de sencilla ${var/pat/ree} o ${var//pat/ree}
echo ${var2/m/M} -> loreM,ipsum.,datum.sanctum
echo ${var2//m/M} -> loreM,ipsuM.,datuM.sanctuM
OK? Un uso muy interesante de todo esto? Por ejemplo, para renombrar muchos ficheros de IMAGEN a imagen:
for i in *
do
mv ${i} ${i/IMAGEN/imagen}
done
Magia!