使用正则表达式查找未按预期工作

使用正则表达式查找未按预期工作

我有一堆目录,其数字名称在 1 到 1,500 之间,我想使用命令find来仅查找这些在 1,250 到 1,500 范围内的目录,这个正则表达式应该可以做到这一点:[1][2-5][0-9][0-9]因此我尝试了这个命令:

find . -regextype sed -regex "[1][2-5][0-9][0-9]"

但却find什么也没找到,我做错了什么吗?

答案1

man 1 find[强调我的]:

-regex pattern
文件名与正则表达式模式匹配。这是整个路径,而不是搜索。例如,要匹配名为 的文件./fubar3,可以使用正则表达式.*bar..*b.*3,但不能使用f.*r3

因此这会发现一些东西:

find . -regextype sed -regex ".*/1[2-5][0-9][0-9]"

请注意,[1][2-5][0-9][0-9]您使用的范围涵盖 1200-1599。[1]可以像1我的例子一样。

相关内容