给grep的正则表达式

时间:2016-08-18 10:25:37

标签: regex grep

我想从一个看起来像这样的巨大文件中提取出来:

.....
G:  Quantity 000001, removing 4 binary files
A: some stuff
.....
G: some other stuff
G: some infos
.....
G:  Quantity 000002, removing 1 binary files
....
A: some data
....
G:  Quantity 000003, removing 41 binary files
.....

所有行“G:数量??????,删除*二进制文件”。

我正在用bash语法编写这个模式,因为它是我最熟悉的那个,但是grep并不像bash那样解释我的问号和星号。什么是相应的grep语法?

以下语法有效:

grep "G:" filename | grep Quantity | grep removing

但它不使用任何正则表达式。

1 个答案:

答案 0 :(得分:2)

在正则表达式中,匹配任何字符的方法是使用.

如果您想要与任何字符完全匹配N次,请说.{N}。如果您想匹配至少一个,请说.+。在这种情况下,您希望匹配数字,最好说[0-9]而不是过于通用的.

grep -E 'G:  Quantity [0-9]{6}, removing [0-9]+ binary files' file

此命令返回:

G:  Quantity 000001, removing 4 binary files
G:  Quantity 000002, removing 1 binary files
G:  Quantity 000003, removing 41 binary files