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.