SoftwareTeacher 2021-04-07 11:36 采纳率: 83.3%
浏览 820
已采纳

如何用 awk sed 命令统计一个 Unix 系统中文件大小的分布情况?

Unix History and Memoir

 

今天看了《Unix 传奇》一书,想起很久以前读 Unix 文件系统设计思想的时候,里面提到Unix 的很多文件大小在 4K 以下。 

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

  • 写回答

3条回答 默认 最新

  • Brentbin 2021-04-08 09:44
    关注
    bins=('0-1k','1k-4k','4k-1m','1m-10m','10m-1g','1g-inf')
    ls -Rla | awk '{print $9, $5}' | column -t | awk -v bins_str=$bins 'BEGIN{split(bins_str,bins,",");ttl=0} ($2 <= 1024) {a[1]++} (1024 < $2 && $2 <= 4096) {a[2]++} (4096 < $2 && $2 <= 1048576) {a[3]++} (1048576 < $2 && $2 <= 10485760) {a[4]++} (10485760 < $2 && $2 <= 1073741824) {a[5]++} (1073741824 < $2 ) {a[6]++} {ttl++} END {for(i=0;i<length(a);++i) print bins[i],a[i],"percentiles:",(a[i]/ttl)*100,"%"}'
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装