我有以下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 中交替完成此操作?
谢谢!