相关疑难解决方法(0)

Grep -E, Sed -E - 使用 '[x]{1,9999}' 时性能低下,但为什么呢?

grepsed与选项一起使用--extended-regexp并且模式{1,9999}是所使用的正则表达式的一部分时,这些命令的性能会变低。为了更清楚,下面应用了一些测试。[1] [2]

  • grep -Eegrep和的相对性能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)

command-line regex grep

9
推荐指数
1
解决办法
555
查看次数

标签 统计

command-line ×1

grep ×1

regex ×1