我有一个很长的目录列表,我需要找到比 2000 年更新的目录列表。问题是文件夹日期没有保留,所以我必须按目录名称。
例子:
./aaa bbb aa ccc (1999)
./gggg rrr (1939)
./hhh bbb (2001)
我试图想出一个名称的正则表达式,但我无法弄清楚它有什么问题......它带来了所有折叠,我只期待 1(在上面的例子中) find -E . -regex '.*(20[0-9]{2})*' -type d
然后我必须将 2000 和更新的文件夹移动到另一个tmp
文件夹...
任何想法如何做到这一点?
在正则表达式中,括号是用于分组和捕获的元字符。至于匹配文字括号,您必须通过反斜杠对其进行转义\
。
通过以下方式匹配 2001 和 2099 之间带括号的年份:
\(20(?:[1-9][0-9]|0[1-9])\)
正则表达式中的元括号|
对[1-9][0-9]
(以至少 1 开头的两位数字)和0[1-9]
(以 1 到 9开头的前导零)的替代模式(由竖线表示)进行分组。在?:
开盘后括号告诉正则表达式引擎,该集团不应该被抓获。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句