В Linux есть замечательная утилита rename. Ну, точнее, их две: одна входит в пакет util-linux, другая - скрипт на базе perl-модуля File::Rename. В deb-дистрибутивах нужный нам скрипт устанавливается в составе пакета rename и также имеет имя второе file-rename (а версия из util-linux имеет имя rename.ul). В других дистрибутивах может быть иначе, поэтому смотрим внимательнее параметры запуска (можно запустить rename без параметров и убедиться, что это нужный вариант).
Синтаксис предельно простой: rename регулярное_выражение_замены_perl имена_файлов
Синтаксис rename.ul для сравнения: rename что_заменить на_что_заменить имена_файлов
Вот что можно сделать для решения задачи (в предположении, что других точек, кроме как перед расширением, в имени файла нет):
rename 's/-\w+\././' *
Этот скрипт намного удобнее многоэтажных однострочников, да и пригодится в жизни ещё не раз.