bash - 在每一行中将字节转换为 GB
问题描述
如何在 Bash 的单列中的每一行中将字节转换为千兆字节?我试过这个:
echo "scale=2; $(cat file.log) / 1024^2" | bc
但那只转换最后一个值。
file.log 内容示例:
2171863040
1693491200
1984045056
(中间没有空格)
解决方案
你可以使用awk
:
$ cat file.log
1073741824 1073741824
$ awk '{print $1/1024/1024/1024 " GB " $2/1024/1024/1024 " GB"}' file.log
1 GB 1 GB
或使用您刚刚发布的示例数据:
$ awk '{print $1/1024/1024/1024 " GB "}' file.log
2.02271 GB
1.57719 GB
1.84779 GB
推荐阅读
- spring - Hibernate Inheritance - 将关系设置为 null
- html - 单击Wordpress中的项目时如何重置导航栏
- c# - 如何将 2D Sprite 统一添加到材质中?
- python - 如何在 python 中使用 any 进行 n^2 搜索
- r - R:计算 log(exp(...)) 的最大浮点误差
- java - superTrend的Java实现
- php - 在 laravel 中更新具有两个不同数组的多个值
- unity3d - Unity 可视化脚本螺栓 Graph Inspector 未显示 Blackboard 布局
- reactjs - 打字稿错误:类型 'string' 不可分配给类型 '"allName" | `allName.${number}.nestedArray`' 以反应钩子形式
- javascript - 如何在 Web 应用程序中停止惯性滚动