Você pode fazer isso com um único sed :
sed 's/\(.*\)-/ /'
ou, usando expressão regular estendida:
sed -r 's/(.*)-/ /'
O ponto é que sed é muito guloso, então, combina tantos caracteres antes de - quanto possível, incluindo outros - .
$ echo 'swp-RedHat-Linux-OS-5.5.0.0-03' | sed 's/\(.*\)-/ /'
swp-RedHat-Linux-OS-5.5.0.0 03