需求:用shell 写一段代码,要求获取指定路径下所有的文件夹,并统计每个文件夹所包含的文件个数,将文件路径, 包含的文件数 输出到指定路径的CSV 格式文件中
以下是使用 Shell 实现获取指定路径下所有文件夹,并统计每个文件夹中包含的文件个数,并将结果导出到 CSV 文件的示例代码:
点击查看代码
shell
# 设置源目录和目标文件路径
source_directory="/path/to/source/dir"
target_file="/path/to/output/file.csv"
# 获取每个子目录的路径和其中文件的数量
echo "文件夹路径,文件数量" > "$target_file" # 写入表头
find "$source_directory" -type d -not -path '*/\.*' -print0 | while read -d $'\0' directory
do
count=$(find "$directory" -maxdepth 1 -type f | wc -l)
echo "\"${directory}\",$count" >> "$target_file"
done
其中,-type d 表示只找文件夹,-not -path '/.' 表示排除掉隐藏文件夹(即以点号开头的文件夹),-print0 表示将输出结果用 \0 分隔。遍历结果会按照 \0 的位置进行分割,从而处理含空格等特殊字符的路径名。
对于每个子目录,使用 find 命令查找该目录下的所有文件(不包括子目录)并使用 wc -l 统计文件数量,并将结果存储在 $count 变量中。最后,使用 echo 将目录路径和文件数量拼接为一行字符串,并使用 >> 将输出结果添加到目标文件中(在第一行之前)。
需要注意的是,上述代码中使用了双引号将目录路径括起来,这是为了防止路径名中出现逗号等分隔符导致 CSV 文件格式错误。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?