check this if it works for your requirement:
sed
sed 's/\.[^.]*$//'
grep
grep -Po '.*(?=\.)'
test:
kent$ cat f
name_1.23.ps.png
name_1.23.ps.best
name_1.23.ps
name_1.23.ps
#sed:
kent$ sed 's/\.[^.]*$//' f
name_1.23.ps
name_1.23.ps
name_1.23
name_1.23
#grep
kent$ grep -Po '.*(?=\.)' f
name_1.23.ps
name_1.23.ps
name_1.23
name_1.23
EDIT from the comments. I feel it would be new requirement:
grep
kent$ grep -o '.*\.ps' f
name_1.23.ps
name_1.23.ps
name_1.23.ps
name_1.23.ps
sed
kent$ sed 's/\(.*\.ps\)\..*/\1/' f
name_1.23.ps
name_1.23.ps
name_1.23.ps
name_1.23.ps