Предполагая, что что угодно в вашем тексте может меняться, вам нужно использовать sort
со следующими опциями:
-t, --field-separator=SEP использовать SEP вместо перехода от непустого к пустому
k, --key=POS1[,POS2] начинать ключ в POS1 (начало 1), заканчивать в POS2 (по умолчанию конец строки)
-V, --version-sort естественная сортировка (версий) номеров в тексте
sort -t "-" -k 2 -V < [filename]