【发布时间】:2019-07-15 08:40:56
【问题描述】:
我想找到这些文件:
- 智能用户04.csv
- 智能用户07.csv
当我输入这个时:
find . -type f -regex "\bsmart\susers\d{2}\.csv\b"
一无所有
【问题讨论】:
-
只有 \b 对任何 find 的正则表达式有效; \s 和 \d 不在其中任何一个中,据我在 GNU 查找信息页面中所见。
-
find . -type f -regex ".*smart.users..\.csv" -
或者:
find . -type f -regex ".*smart.users[0-9][0-9]\.csv". -
甚至
find . -type f -regextype posix-extended -regex '.*\bsmart users[0-9]{2}\.csv\b';D ...有趣的一点是,即使 if 任何正则表达式知道 \d 它仍然会失败,因为作为最小输出总是有前导./,不符合wordboundry要求。