В Bash 4.2 добавлена поддержка отрицательных длин подстрок:
http://tldp.org/LDP/abs/html/abs-guide.html#SUBSTREXTR01
Пример 37-12. Отрицательный параметр в конструкции извлечения строки
Когда параметр "length" отрицателен, он служит параметром смещения от конца.
Например, следующие результаты «Мир» при тестировании на Ubuntu:
STR="Hello World!"
echo ${STR:6:-1}
Но в OS X (GNU bash, версия 4.3.42 (1) -релиз (x86_64-apple-darwin14.5.0)) такое использование приводит к следующей ошибке:
-1: substring expression < 0
Этот OS X специфичен, или он был снова отключен в последующих обновлениях bash? Есть ли способ включить эту функцию для OS X?
echo "Hello World" | rev | cut -c -5 | rev