0

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

######################
# 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
4

2 回答 2

1

使用 sed:

sed -n '/###[#]*/,/if (\$ADD/{p}' input
于 2012-12-10T06:17:29.653 回答
1
pcregrep -Mo '(?<=#)\s*ADD=1234' text.php

pcregrep -multiline -only,向后看(找到最后一个 #),然后是任意数量的空格,然后是 'ADD=1234'(或者你可以执行 'ADD=[[:digit:]]*')

希望这可以帮助

于 2015-11-23T04:39:45.220 回答