Есть несколько способов выполнить основную задачу.
$ str="qa_sharutils-2009-04-22-15-20-39"
Если вы хотите удалить последние 20 символов. Выбор этой подстроки начинается с нуля:
$ echo ${str::${#str}-20}
qa_sharutils
"%" и "%%" для удаления с правой стороны строки. Например, если вам нужно базовое имя, за вычетом всего, что следует за первым «-»:
$ echo ${str%%-*}
qa_sharutils