Bash 4.2 agregó soporte para longitudes de subcadena negativas:
http://tldp.org/LDP/abs/html/abs-guide.html#SUBSTREXTR01
Ejemplo 37-12. Parámetro negativo en la construcción de extracción de cadenas
Cuando el parámetro "longitud" es negativo, sirve como un parámetro de compensación desde el final.
Por ejemplo, los siguientes resultados "Mundo" cuando se prueban en Ubuntu:
STR="Hello World!"
echo ${STR:6:-1}
Pero en OS X (GNU bash, versión 4.3.42 (1) -release (x86_64-apple-darwin14.5.0)), ese uso produce el siguiente error:
-1: substring expression < 0
¿Es este OS X específico, o fue deshabilitado nuevamente en actualizaciones posteriores de bash? ¿Hay alguna manera de habilitar esta funcionalidad para OS X?
echo "Hello World" | rev | cut -c -5 | rev