I need to delete all strings consisting of a hyphen followed by a whitespace, but only when the whitespace is not followed by the word \"og\". Example file:
Kult
This might work for you (GNU sed):
sed -r 's/(- (og|eller))|- /\1/g' file
This relies on alternation to re-replace specific cases and the empty backreference to replace the general case.