使用pcregrep搜索模式

时间:2012-12-10 06:10:13

标签: regex linux grep

我在文本文件中有以下模式。

######################
# ADD=123 New Comment
######################

if ($ADD==123)

除此之外,以下几行是可变的

# ADD=124 Old Comment

if ($ADD==1234)

我尝试使用pcregrep进行多线greping,但我对正则表达式并不擅长。任何指针如何提取这种模式。

[root@srv admin]# pcregrep -M '######################\n#*\n' text.php

2 个答案:

答案 0 :(得分:1)

使用sed:

sed -n '/###[#]*/,/if (\$ADD/{p}' input

答案 1 :(得分:1)

pcregrep -Mo '(?<=#)\s*ADD=1234' text.php

pcregrep -multiline -only,向后看(找到最后一个#),然后查看任意数量的空格,然后&#39; ADD = 1234&#39;(或者你可以做&#39; ADD = [[:位:]] *&#39)

希望这会有所帮助