如何使用egrep搜索具有逗号和数字的特定模式

4

我有一百万个文本文件,其中包含类似于以下内容的行:

abc,xyz, =12093|
abc,xyz, =12093, =10998|

第一行很好,但我想找到所有第二行。即我想要打印出所有与模式, =<某个数字>,=<某个数字>匹配的行。
因此尝试使用egrep如下,但没有成功。
egrep -nr ",\s=\d+,\s=\d+" fileFolder

没有返回任何结果,但我手动检查了一下,有很多上面提到的第二行。

有趣的是,在 rubular 上正则表达式运行良好 http://rubular.com/r/GYynEEoFm7

有人知道我应该在 egrep 中使用什么正则表达式吗?


egrep有开关可以启用部分行匹配吗?默认是完整行匹配吗?或者在双引号中时必须转义反斜杠。 - user557597
2个回答

5

\d 在grep的正则表达式引擎(ERE)中不被支持。使用 [0-9]

egrep -nr ", =[0-9]+, =[0-9]+" fileFolder

egrep没有扩展模式开关吗?还是我搞错了? - user557597
egrep和grep -E是相同的,而\d只会在grep -P中被支持。 - anubhava

0

你也可以使用 awk 来做到这一点

awk '/[0-9]+,[^0-9]*[0-9]+/' file
or
awk '/[0-9]+, =[0-9]+/' file

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接