正则表达式或者找到

时间:2016-04-19 18:14:15

标签: unix find ls

我只需要选择2014年 0729 - 2014 0921 期间的目录。

目录看起来像这样。

20140729_154208 20140814_221350 20140829_215623

这样做的最佳方法是什么?

由于

1 个答案:

答案 0 :(得分:1)

使用find

为了查找范围内修改的文件,如果目录中最后一个文件的创建时间与目录名称匹配,最简单的方法是在范围边界创建文件,使用-newer谓词。

touch -t 201407290000 start
touch -t 201409210000 stop
find . -newer start \! -newer stop -type d

(我不知道如何处理regex内的日期,但我希望我有时间学习)

使用awk

是的,为什么不使用awk而不是构建静态regex来匹配案例?

使用一个小程序将查找或结果传递给awk,检查结果是否在stopstart之间(注意:对于find我必须{{1}比较):

substr(3,10)

(它适用于我find . |awk -v start=20140729 -v stop=20140921 \ '{ curr=substr($0, 3, 10); if (curr <= stop && curr >= start) { print $0 } }' AIX