在 find 中使用正则表达式量词

Chr*_*isW 4 find regular-expression

我在一个目录中有一组文件,所有格式都是test[0-9][0-9].txt. 如果我跑

find . -regex ".*/(test)[0-9][0-9]\.txt"
Run Code Online (Sandbox Code Playgroud)

然后显示所有文件,但如果我运行

find . -regex ".*/(test)[0-9]{2}\.txt"
Run Code Online (Sandbox Code Playgroud)

然后没有显示。我究竟做错了什么?!

我已经搜索过以前与此类似的问题,但找不到特别相关的答案

the*_*fog 7

如果您正在使用GNU查找,这应该适合您

 find . -regextype sed -regex "./test[0-9]\{2\}.txt"
Run Code Online (Sandbox Code Playgroud)

解释

  • -regextype sed - 使用基本的 posix 正则表达式(因为那是我熟悉的)
  • ./ - 必要,因为 find 认为相对搜索中的所有文件路径都以此模式开始
  • [0-9]\{2\}-[0-9]数字字符类的2 个实例,带有\{...\}转义的量词括号 - 每个基本的 posix 正则表达式