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 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加