You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell脚本统计含.tab文件的目录及子目录下的.xlsx文件数量

Shell脚本实现指定目录xlsx文件统计

核心逻辑

只统计同目录下存在.tab文件的文件夹内的.xlsx文件,跳过无.tab文件目录下的xlsx文件,解决原生find命令全量统计不符合要求的问题。

可直接执行的命令

Linux环境(GNU find,绝大多数发行版默认)

直接运行即可输出符合要求的xlsx文件总数:

find . -type f -name '*.tab' -printf '%h\n' | sort -u | while read -r dir; do find "$dir" -maxdepth 1 -type f -name '*.xlsx'; done | wc -l

跨平台兼容版本(支持macOS/BSD find等环境)

如果运行上面的命令报printf: unknown option类错误,用这个版本:

find . -type f -name '*.tab' -exec dirname {} \; | sort -u | while read -r dir; do find "$dir" -maxdepth 1 -type f -name '*.xlsx'; done | wc -l

命令逻辑说明

  • 第一步通过find定位所有.tab文件,提取每个.tab文件所在的目录路径
  • 对目录路径去重,避免同目录下存在多个.tab文件导致重复扫描
  • 逐个扫描有效目录下的.xlsx文件,-maxdepth 1参数表示只统计当前子目录下的xlsx,不递归更深层目录;如果需要递归统计有效目录下所有层级的xlsx,直接删除该参数即可
  • 最后通过wc -l统计符合要求的xlsx总数量
  • 如果需要查看具体哪些xlsx文件被统计,删掉命令末尾的| wc -l即可输出所有符合条件的文件路径

效果验证

针对你给出的示例目录结构:

RootDir/
├── SubDir1/
│   ├── test.xlsx
│   └── test.tab
└── SubDir2/
    └── test.xlsx

运行命令后返回统计结果为1,仅统计SubDir1下的test.xlsx,SubDir2因无.tab文件,其下的xlsx不会被计入,完全匹配需求。

内容的提问来源于stack exchange,提问作者Manoj Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 03:54:32