Just to explain druuna's answer for Guyverix. The following searches for anything '.*', followed by a fullstop and a single number '\.[0-9]'. Because the last pattern is in parenthesis it is a sub-expression that can used in the replacement.
Code:
$ sed 's/.*\(\.[0-9]\)/\1/' input
Infact, because you want to return a full stop and the last number unchanged you can just use:
Using this the last number won't be matched or replaced and everything upto it will be replaced by a full stop - the number is not being replaced so doesn't need to be included in the search and replace, however the full stop is needed to in the search and replace, because this is our trigger to stop searching.
However, Guyverix didn't want the full stop so all that is needed is:
BTW, I particularly like Mario's reply -
Bash's shell parameter expansion is a very powerful and under-utilised feature.