当grep或sed与选项一起使用--extended-regexp并且模式{1,9999}是所使用的正则表达式的一部分时,这些命令的性能会变低。为了更清楚,下面应用了一些测试。[1] [2]
grep -E、egrep和的相对性能sed -E几乎相等,因此只grep -E提供了与进行的测试。测试 1
$ time grep -E '[0-9]{1,99}' < /dev/null
real 0m0.002s
Run Code Online (Sandbox Code Playgroud)
测试 2
$ time grep -E '[0-9]{1,9999}' < /dev/null
> real 0m0.494s
Run Code Online (Sandbox Code Playgroud)
测试 3
$ time grep -E '[0123456789]{1,9999}' < /dev/null
> 真正的 21m43.947s
测试 4
$ time grep -E '[0123456789]+' < /dev/null
$ time grep -E '[0123456789]*' < /dev/null
$ time grep -E '[0123456789]{1,}' < /dev/null …Run Code Online (Sandbox Code Playgroud)