为什么正则表达式({n})中的精确匹配在命令行中不起作用?

时间:2019-03-27 20:43:23

标签: regex unix command-line

我正在尝试匹配一行中出现2次的表达式。 我试过了:
find . * | egrep "(prune){2}"
这不会显示任何输出。

但是,当我尝试时:
find . * | egrep "(prune){1}"
该行同时显示1和2个匹配项。
code+output

2 个答案:

答案 0 :(得分:0)

{n}语法的意思是:匹配前一个表达式n次。因此,使用(prune){2}只会匹配pruneprune

改为尝试.*prune.*prune.*

答案 1 :(得分:0)

对于要使用正则表达式“(prune){2}”的情况,您需要找到至少一个文件名中包含单词“ pruneprune”的文件,但找不到任何文件是因为没有文件包含“西梅”字样。

要进行测试,请尝试使用以下命令创建一些文件:

touch {a..b}pruneprune{1..9}.log

并再次使用“(prune){2}”运行命令。