HelloWorld10241024 2022-08-31 11:14 采纳率: 100%
浏览 23
已结题

怎么能用Unix 的awk, sed 和其它 shell 命令统计出你当前 Unix/Linux 系统上 所有文件大小的分布情况?

问题遇到的现象和发生背景

怎么能用Unix 的awk, sed 和其它 shell 命令统计出你当前 Unix/Linux 系统上 所有文件大小的分布情况? (小于1K, 1K - 4K, 4K - 1M, 1M - 10M, 10M - 1G, 1G 以上)

我的解答思路
  1. 使用命令列出目录下的所有文件信息
  2. 使用命令过滤出文件名和文件大小的列
  3. 使用命令统计不同文件大小的个数并计算百分比打印
  4. 使用管道把上述1/2/3组合起来
  • 写回答

2条回答 默认 最新

  • 共饮一杯无 2022年度博客之星评选TOP 15 2022-08-31 11:20
    关注

    您好,我这边操作了下,相关命令如下:

    ls -Rla | awk '{print $9, $5}' | awk '
    BEGIN{
        size[0] = " 0K-1K"
        size[1] = " 1K-4K"
        size[2] = " 4K-1M"
        size[3] = " 1M-10M"
        size[4] = "10M-1G"
        size[5] = " 1G+  "
        total = 0
    }
    
    ($2 <= 1024) {a[0]++} 
    (1024 < $2 && $2 <= 4096) {a[1]++} 
    (4096 < $2 && $2 <= 1048576) {a[2]++} 
    (1048576 < $2 && $2 <= 10485760) {a[3]++} 
    (10485760 < $2 && $2 <= 1073741824) {a[4]++} 
    (1073741824 < $2 ) {a[5]++} 
    
    {total++} 
    
    END {
        for(i=0;i<length(a);++i) 
            print size[i], "文件个数:", a[i], "百分比:", (a[i]/total)*100,"%"
    }'
    

    执行结果如下:

    img

    如有收获,欢迎采纳。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月8日
  • 已采纳回答 8月31日
  • 创建了问题 8月31日

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置