使用正则表达式量词和 find

使用正则表达式量词和 find

我的目录中有一组文件,所有格式均为test[0-9][0-9].txt.如果我跑

find . -regex ".*/(test)[0-9][0-9]\.txt"

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

find . -regex ".*/(test)[0-9]{2}\.txt"

那么什么都不会显示。我究竟做错了什么?!

我搜索过之前类似的问题,但找不到特别相关的答案

答案1

如果您正在使用GNUfind,这应该适合您

 find . -regextype sed -regex "./test[0-9]\{2\}.txt"

解释

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

相关内容