我正在尝试使用命令搜索字符串0.49(带点)

grep -r "0.49" *

但发生的事情是,我也得到了不需要的结果,其中包含字符串,如0449,0949等。问题是linux将点(.)视为任何字符,并显示所有结果。但我只想得到“0.49”的结果。


当前回答

您可以使用\转义点和其他特殊字符

如。Grep -r "0\.49"

其他回答

您可以使用\转义点和其他特殊字符

如。Grep -r "0\.49"

只是逃离。

Grep -r "0\.49"

你也可以用“[.]”

grep -r "0[.]49"

这里有很多建议用\来转义点的答案。但我一次又一次地遇到这个问题:\。得到的结果和。

然而,这两个表达对我来说很有用:

$ grep -r 0\\.49 *

And:

$ grep -r 0[.]49 *

我在Ubuntu和Archlinux上使用“正常”bash shell。

编辑,或根据评论:

$ grep -r '0\.49' *

注意,单引号在这里起作用。

你也可以用——option搜索,它会忽略所有的特殊字符,grep不会解释它。

$ cat foo |grep -- "0\.49"