Sed - Remplacer la dernière occurrence de match pour chaque ligne

J'ai donc le fichier suivant:

Carlton 3053
Carlton North 3054
Docklands 3008
East Melbourne 3002
Flemington 3031
Kensington 3031
Melbourne 3000
Melbourne 3004
North Melbourne 3051
St Kilda East 3183

Je veux remplacer le dernier espace juste avant les nombres avec un trait d'union, c'est le plus proche que j'ai

cat file.txt | sed -r 's/\ /\-/g'

Mais cela remplace tous les espaces avec un -
Je veux que la sortie ressemble à ceci:

Carlton-3053
Carlton North-3054
Docklands-3008
East Melbourne-3002
Flemington-3031
Kensington-3031
Melbourne-3000
Melbourne-3004
North Melbourne-3051
St Kilda East-3183

Des idées?

Notez que tant que vous voulez juste faire un remplacement, /g n'est pas nécessaire.

OriginalL'auteur bk201 | 2014-04-04