我的目录中有一组文件,所有格式均为test[0-9][0-9].txt
.如果我跑
find . -regex ".*/(test)[0-9][0-9]\.txt"
然后显示所有文件,但如果我运行
find . -regex ".*/(test)[0-9]{2}\.txt"
那么什么都不会显示。我究竟做错了什么?!
我搜索过之前类似的问题,但找不到特别相关的答案
答案1
如果您正在使用GNU
find,这应该适合您
find . -regextype sed -regex "./test[0-9]\{2\}.txt"
解释
-regextype sed
- 使用基本的 posix 正则表达式(只是因为那是我熟悉的)./
- 必要的,因为 find 认为相对搜索中的所有文件路径都以此模式开始[0-9]\{2\}
- 数字字符类的 2 个实例[0-9]
,其中量词\{...\}
括号已转义 - 每基本 posix 正则表达式