【发布时间】:2018-02-03 19:22:14
【问题描述】:
我有一个文件,它产生如下所示的输出。如何使用 Bash 以 GB 为单位转换 100571394 字节?有什么脚本吗?
2018-02-01 23:29:01 CET usr1@abc.com 100571394 bytes
2018-02-01 23:29:58 CET usr2@abc.com 35196735 bytes
2018-02-01 23:30:56 CET usr3@abc.com 1187519 bytes
2018-02-01 23:34:01 CET usr4@abc.com 121153336 bytes
2018-02-01 23:37:13 CET usr5@abc.com 57589006 bytes
【问题讨论】:
-
您想要千兆字节(GB 或 10⁹)还是千兆字节(GiB 或 2³⁰)?大小差异为 7.37%。处理千兆字节是一个编辑问题(在右数第 9 位之前添加一个小数点),而千兆字节也需要计算。你想要多少个小数位?尾随零?值能有多大?据推测,不会超过 PB (PB) 或 pebibytes (PiB),因此 64 位整数运算足以处理原始值,但您需要浮点运算(Bash not 提供,不像Korn 壳)。
expr命令只处理整数 - 使用bc。 -
usr3@abc.com的预期输出是什么——事实上,对于显示的每一行,因为没有一个值超过大约 1/10 GB?您可能应该使用example.com代替abc.com—example.com域保留用于此类用途,但abc.com是新闻/媒体公司。
标签: bash dynamic using calculation