为什么pcregrep比grep快?

为什么pcregrep比grep快?,grep,centos,pcregrep,Grep,Centos,Pcregrep,我在centos上有一些大的文本文件(3 GB rails日志文件),该文本文件中有一个损坏的字节。当尝试使用grep搜索某个模式时,它会无限期运行,我必须关闭它,但是使用pcregremp只需要不到一分钟的时间,所以有什么线索可以解释为什么会有这种差异吗 使用grep进行我的搜索: grep -Pzo "2016-04-20(.*?)SomeController#index" production.log | wc -l 使用pcregrep: pcregrep -M "2016-04-20

我在centos上有一些大的文本文件(3 GB rails日志文件),该文本文件中有一个损坏的字节。当尝试使用grep搜索某个模式时,它会无限期运行,我必须关闭它,但是使用pcregremp只需要不到一分钟的时间,所以有什么线索可以解释为什么会有这种差异吗

使用grep进行我的搜索:

grep -Pzo "2016-04-20(.*?)SomeController#index" production.log | wc -l
使用pcregrep:

pcregrep -M "2016-04-20(.*?)SomeController#index" production.log | wc -l

对于这种特定模式,
pcregrep
中使用的算法可能更快。在不匹配的情况下,它可能会跳过比
grep
中使用的算法更多的字节。您正在使用与
grep
pcregrep
不同的模式。要进行真正的比较,请使用相同的模式。
pcregrep
中使用的算法对于此特定模式可能更快。在不匹配的情况下,它可能会跳过比
grep
中使用的算法更多的字节。您正在使用与
grep
pcregrep
不同的模式。要进行真正的比较,请使用相同的模式。