bash - Unix - 按文件名过滤查找结果

标签 bash unix

在 unix bash 中,我得到的文件如下所示:

find . -regextype posix-egrep -iregex "./[0-9]{8}/exp/RESULT.out"| sort

./20150128/exp/RESULT.out
./20150210/exp/RESULT.out
./20150218/exp/RESULT.out
./20150224/exp/RESULT.out
./20150318/exp/RESULT.out
./20150327/exp/RESULT.out
./20150330/exp/RESULT.out

是否可以按日期 YYYYMMDD 日期字符串过滤此结果,以便我只获取指定日期之前并包括指定日期的文件?

例如对于 20150224,我只想得到

./20150128/exp/RESULT.out
./20150210/exp/RESULT.out
./20150218/exp/RESULT.out
./20150224/exp/RESULT.out

谢谢你的帮助

最佳答案

您可以使用此查找 命令:

export s='20150224'

find . -regextype posix-egrep -iregex "./[0-9]{8}/exp/RESULT.out" -exec \
     bash -c 'IFS=/ read -ra arr <<< "$1"; ((${arr[1]} <= s)) && echo "$1"' - '{}' \;
./20150128/exp/RESULT.out
./20150210/exp/RESULT.out
./20150218/exp/RESULT.out
./20150224/exp/RESULT.out

关于bash - Unix - 按文件名过滤查找结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29436181/

相关文章:

c - 如何创建一个新的子目录并将文件复制到其中? (Unix 中的 C 实用程序)

linux - 如何用shell函数制作 "dictionary"?

c - 在 C 程序中使用 system ("clear") 命令时出现奇怪的输出

linux - 如何解决 AIX tar 命令套接字错误?

unix - 在 Unix 中为每条记录添加一个字符到文件的特定位置

为单个线程创建信号处理程序

bash - awk 脚本需要修改或可能需要 grep 解决方案(awk 新手)

linux - 在循环中读取是/否选项,不起作用

bash - 选项需要参数错误

linux - BASH:如何将参数和数据发送到 STDIN 上的进程