首页 > 系统相关 >Chatgpt 帮忙写的脚本_用shell 写一段代码,要求获取指定路径下所有的文件夹,并统计每个文件夹所包含的文件个数,将文件路径, 包含的文件数 输出到指定路径的CSV 格式文件中

Chatgpt 帮忙写的脚本_用shell 写一段代码,要求获取指定路径下所有的文件夹,并统计每个文件夹所包含的文件个数,将文件路径, 包含的文件数 输出到指定路径的CSV 格式文件中

时间:2023-04-19 23:11:25浏览次数:40  
标签:文件 代码 路径 文件夹 directory CSV

需求:用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
在上述代码中,首先设置了源目录和目标文件路径。随后通过 find 命令遍历 $source_directory 目录及其子目录下的所有文件夹。

其中,-type d 表示只找文件夹,-not -path '/.' 表示排除掉隐藏文件夹(即以点号开头的文件夹),-print0 表示将输出结果用 \0 分隔。遍历结果会按照 \0 的位置进行分割,从而处理含空格等特殊字符的路径名。

对于每个子目录,使用 find 命令查找该目录下的所有文件(不包括子目录)并使用 wc -l 统计文件数量,并将结果存储在 $count 变量中。最后,使用 echo 将目录路径和文件数量拼接为一行字符串,并使用 >> 将输出结果添加到目标文件中(在第一行之前)。

需要注意的是,上述代码中使用了双引号将目录路径括起来,这是为了防止路径名中出现逗号等分隔符导致 CSV 文件格式错误。

标签:文件,代码,路径,文件夹,directory,CSV
From: https://www.cnblogs.com/vmsky/p/17335015.html

相关文章

  • 有大佬知道这是为什么嘛?路径和文件名都没错呀
    大家好,我是皮皮。一、前言前几天在Python白银交流群【笑】问了一个Python文件处理的问题,这里拿出来给大家分享下。二、实现过程这里【空翼】指出是路径错了的问题,其实报错也非常明显了。只需要把前面那个topmine_src去掉即可。顺利地解决了粉丝的问题。三、总结大家好,我是皮皮。这......
  • ASRock Z690 Extreme WiFi 6E i7 13700KF电脑 Hackintosh 黑苹果efi引导文件
    原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔)硬件型号驱动情况主板ASRockZ690ExtremeWiFi6E处理器IntelCorei713700KF已驱动内存KINGBANK2x32GBDDR4-3600CL18已驱动硬盘PredatorSSDGM70001TB已驱动显卡YESTONRX6800XT16G已驱动声卡ConexantCX8070......
  • 体验.NET与文件存储服务MinIO
    对象文件存储服务(OSS)主要用于存储零散的文件,和直接存储到本地文件系统中相比,有以下的几个优势:跨服务器可用兼容AmazonS3API横向扩容高可用支持加密MinIO就是一个高性能的文件服务,我们使用.NET来操作一下。部署MinIO最简单的办法,就是在Docker上运行MinIO。可以使用以......
  • Delphi 获得文件大小的方法
    Delphi获得文件大小的方法大概有这些:FileSizeByName(需要引用IdGlobal单元,XE版本已取消) GetFileSize (useWindows,仅支持windows)FileSize(不能获得正在使用的文件大小) FileSeek TFileStream.Size 1、FileSizeByName(需要引用IdGlobal单元,XE版本已......
  • helm _helpers.tpl 文件用法
    templates目录下⾯除了NOTES.txt文件和以下划线_开头命令的文件之外,都会被当做kubernetes的资源清单文件,而这个下划线开头的文件不会被当做资源清单外,还可以被其他chart模板中调用命名模板我们也可以称为子模板,是限定在⼀个文件内部的模板,然后给⼀个名称,在使用命名模板的......
  • vue项目部署后 nginx配置重定向 大文件报错问题
      删除Nginx缓存文件试试?#rm-rf/usr/local/nginx/proxy_temp  注意proxy_busy_buffers_size是proxy_buffers的两倍,proxy_temp_file_write_size也要比proxy_buffers大。  ......
  • 【Mybatis】Idea中设置核心配置文件、映射文件的模板,获取SQLSession工具类
    1.核心配置文件模板<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>......
  • sshd配置文件详解
    转自:http://blog.licess.com/sshd_config/#1.关于SSHServer的整体设定,包含使用的port啦,以及使用的密码演算方式Port22#SSH预设使用22这个port,您也可以使用多的port!#亦即重复使用port这个设定项目即可!Protocol......
  • md文件图片上传
    注意:以下所有操作均需要在以管理员身份运行cmd中执行一、下载.Net环境.Net官网下载二、查看dotnet版本号安装完成后,打开cmd,输入:dotnet--info查看版本号三、安装dotnet-cnblog在cmd中输入命令:dotnettoolinstall-gdotnet-cnblog安装成功后,会出现“已成功安装工具dotn......
  • oracle获取上传文件类型分类
    如下selectx.*,count(1)from(--selectsubstr(t.attachmentpath,-3,)vfromCOMM_ATTACHMENTtselectsubstr(t.attachmentpath,instr(t.attachmentpath,'.',-1)+1)vfromCOMM_ATTACHMENTt)xgroupbyv;数据源举例:\project\2018\11......