使用*命令删除文件中“.”之后的所有内容?

2024-10-01 19:28:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下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 

Tags: 文件文档命令txtdataetcsed空白
3条回答

这似乎奏效了:

sed "s/[.].*//" data.txt > cleaned.txt

如果有人不介意分享的话,我很想知道如何在bash和python中交替进行这项工作?

谢谢!

这是最简单的:

sed "s/\..*//"

我认为这是最好的方法之一(比纯bash或Python更好)。

使用反斜杠转义.以获取文本.,或者使用括号定义字符类:

sed 's/\..*$//' data.txt > cleaned.txt
sed 's/[.].*$//' data.txt > cleaned.txt

你试过's/\.*//',这是“零个或多个文字点”,它不同于“文字点后跟零个或多个任何东西”,即's/\..*//'。我还添加了一个$作为良好的度量。

相关问题 更多 >

    热门问题