It's probably a simple problem for a sed guru, if only they knew what the line looked like. Always provide a sample of the input you want people to help you with, and don't forget to mention any special cases if there are any.
As i don't know the intricacies of the actual file here are some suggestions:
sed 's/ \([^ .]*\)\.[^ ]* / \1 /g'
This will replace any string of non-spaces/non-full-stops, followed by a full stop, followed by a series of non-spaces by the part up to the first full stop:
abc.def.ghi.jkl -> abc
In the regexp there are surrounding spaces to split on word boundaries, therefore the regexp will not work with "words" at the beginning or the end of a line. Furthermore, if there are "words" with full stops in them they would be shortened too (like in "my.name@emailadress.com" -> "my").
To catch FQDNs at line beginnings or endings in the same way you could add two more regexps:
If you can limit the valid characters for domain names any further you can of course fine-tune this mechanism to catch less non-domainnames. To adress my example of the email-address above, for instance:
sed 's/ \([^ @.]*\)\.[^ @]* / \1 /g'
This would leave email addresses untouched, because "@" is no longer considered a valid character in an FQDN.