Вам нужно захватить часть перед дефисами:
sed 's/\(.*\)-[0-9]*-[0-9]*$/\1/' <<< "1234-5-8888-8978"
# => 1234-5 (POSIX BRE)
sed -E 's/(.*)-[0-9]*-[0-9]*$/\1/' <<< "1234-8888-8978"
# => 1234 (POSIX ERE)
См. онлайн-демонстрацию
Но более уместно просто удалить последние 2 частимежду дефисами, такими как
sed 's/-[0-9]*-[0-9]*$//' <<< "1234-5-8888-8978"
# => 1234-5 (POSIX BRE will suffice)
См. другое демо
Шаблон -[0-9]*-[0-9]*$
соответствует -
, за которым следуют 0+ цифр два раза в конце строки,Его можно записать как (-[0-9]*){2}$
в синтаксисе POSIX ERE и как \(-[0-9]*\)\{2\}$
в синтаксисе POSIX BRE.