如何用grep匹配数字

Pyd*_*man 2 regex grep cygwin

我的日志文件中有一行,其中包含有问题的版本的版本号。它将始终是1.43.93。*例如

<some text > Version=1.43.98.7488, <more text>
Run Code Online (Sandbox Code Playgroud)

我只想指出版本号。

以下内容均未返回任何内容:

grep -G -m 1 1.43.98\.\d+ mylog.txt
egrep -m 1 "1.43.98\.\d+" mylog.txt
Run Code Online (Sandbox Code Playgroud)

内部版本号出现在日志文件中的多个位置(这就是为什么我将-m标志传递为1的原因),但是显然我只对第一个匹配感兴趣。

任何提示将不胜感激。我正在使用Cygwin(GNU grep 2.6.3)。

谢谢

Kid*_*mpo 5

首先确保它\d可以正常工作-您可能必须设置-P选项(perl regex),并通过简单的方法对其进行测试。

我花了很多时间来思考为什么我的正则表达式为什么只能在一个平台上工作,而不仅仅是想发现一台机器上的grep是在未启用-P选项的情况下构建的。所有\d正则表达式都被忽略,我不得不使用[:digit:][0-9]代替:(