如何用单条Linux命令筛选小时数值小于10的目录
直接用find命令就能单条完成查询,适配你说的/store/城市/小时两级目录结构:
基础命令
find /store -maxdepth 2 -type d -regextype posix-extended -regex ".*/0[0-9]$"
参数解释
-maxdepth 2:限制最多查2层目录,只会匹配/store/[城市]/[小时]结构的结果,不会挖到更深层级的目录里误匹配-type d:只筛选目录,排除普通文件-regextype posix-extended:开启POSIX扩展正则规则,不用写多余的转义符- 末尾的正则
.*/0[0-9]$:专门匹配路径最后一段是0加0-9数字的目录,刚好覆盖00到09的小时范围,数值全小于10,完全匹配你给的london/04/这类示例格式
扩展用法
- 如果你的小时目录有用1位数字命名的情况(比如
london/4/而不是london/04/),修改正则规则即可:
find /store -maxdepth 2 -type d -regextype posix-extended -regex ".*/0?[0-9]$"
- 要直接导出结果做报告的话,在命令末尾追加输出路径即可:
find /store -maxdepth 2 -type d -regextype posix-extended -regex ".*/0[0-9]$" > ./hour_dirs_less_than_10.txt
内容的提问来源于stack exchange,提问作者kikee1222
相关产品推荐
相关产品推荐

