shell – 包含K,M,G,T的Sum文件大小
发布时间:2020-12-15 21:07:12 所属栏目:安全 来源:网络整理
导读:如果(在zsh中)我有一个包含这样的东西的数组: echo ${fsizes[@]}9.5M 100M 5G 15G 1.2T 是否有一种简单的方法可以在选择的输出中获得这些的总和(即字节,兆字节,千兆字节等?) 解决方法 #!/bin/zshfsizes=( 9.5M 100M 5G 15G 1.2T )typeset -A unitunit=( B
如果(在zsh中)我有一个包含这样的东西的数组:
echo ${fsizes[@]} 9.5M 100M 5G 15G 1.2T 是否有一种简单的方法可以在选择的输出中获得这些的总和(即字节,兆字节,千兆字节等?) 解决方法#!/bin/zsh fsizes=( 9.5M 100M 5G 15G 1.2T ) typeset -A unit unit=( B 1 K 1024 M 1048576 G 1073741824 T 1099511627776 ) sumSize(){ sum=0 for sz; do u=${sz//[^BKMGT]/} n=${sz//$u/} b=${unit[$u]} (( sum += b * n )) done out="${@:(-1)}" echo "Sum is $(( sum / ${unit[$out]} )) $out" } 输出为字节的示例 $sumSize ${fsizes[@]} "B" Sum is 1341003608883.2 B 输出为Kilobytes的示例 $sumSize ${fsizes[@]} "K" Sum is 1309573836.8 K 以兆字节为单位的输出示例 $sumSize ${fsizes[@]} "M" Sum is 1278880.7 M 以GB为单位的输出示例 $sumSize ${fsizes[@]} "G" Sum is 1248.90693359375 G 以太字节输出的示例 $sumSize ${fsizes[@]} "T" Sum is 1.2196356773376464 T (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- bash – 安装make命令没有make(mac os 10.5)
- 配置iptables
- shell脚本自动加黑恶意攻击IP
- 角2 |指令类型“{}”的参数不可分配
- vim编辑 – 如何编辑突出显示的搜索段或转换为可视块
- Raspberry-pi docker错误:standard_init_linux.go:178:e
- 确定shell脚本的函数和文件依赖性?
- angularjs – Karma中JASMINE_ADAPTER和ANGULAR_SCENARIO_A
- Bootstrap 实例 - 弹出框(Popover)插件
- kendo-ui-angular2 – Kendo-angular2-grid上的行点击事件