我有以下的 data.txt 文件:
95 flour.
47 water.s
etc..
我需要从文件中删除句点(.
)后面的所有内容,以得到像这样的结果:
95 flour
47 water
etc..
我尝试了使用这些sed命令,但没有成功,结果只得到一个空文件:
sed "s/'.*//" data.txt > cleaned.txt
sed 's/\.*//' data.txt > cleaned.txt
要么使用反斜杠转义.
以获得字面上的.
,要么使用方括号定义字符类:
.
以获得字面上的.
,要么使用方括号定义字符类:sed 's/\..*$//' data.txt > cleaned.txt
sed 's/[.].*$//' data.txt > cleaned.txt
您尝试的是's/\.*//'
,它表示"零个或多个点字符",与"一个点字符后面跟随零个或多个任意字符"不同,即's/\..*//'
。为了保险起见,我还添加了一个$
。这是最简单的例子:
sed "s/\..*//"
我认为这是最好的做法之一(比纯粹的bash或Python更好)。
。
sed "s/[.].*//" data.txt > cleaned.txt
如果有人愿意分享的话,我会很感兴趣知道如何在bash和python中以其他方式完成这个任务。
谢谢!
cut -d. -f1
。 - that other guystr.split(".")[0]
。 - Revan