I have the following data.txt:
95 flour.
47 water.s
etc..
I need to remove everything after the period (.) in the file to yield s
Either escape the . with a backslash to get a literal ., or use brackets to define a character class:
sed 's/\..*$//' data.txt > cleaned.txt
sed 's/[.].*$//' data.txt > cleaned.txt
You tried 's/\.*//', which is "zero or more literal dots", which is different from "literal dot followed by zero or more of anything", i.e. 's/\..*//'. I also added a $ for good measure.