在单个命令中用bc进行浮点除法

时间:2018-12-26 01:59:40

标签: shell bc

我正在尝试从命令/文件中的某个匹配项将字节转换为TB。

我得到的命令是:

var=$(($(cat test.txt | awk '/miscellaneous/ {print $NF}' | sed s/.$//)/1000**4)) ; printf $var

该值应为6.182,但仅打印6。我只是无法弄清楚如何在此命令中使用bc来获取浮动值。

test.txt看起来像这样:

  "a": 90919780478976,
  "b": 150812851408896,
  "c": 86337338950671,
  "miscellaneous": 6182842641393,
  "d": 0,
  "e": 58292669816832

1 个答案:

答案 0 :(得分:0)

bc是错误的工具-尝试awk

awk '/miscellaneous/ { print $2 / 1.0e12; }' < test.txt

6.18284

在您的原始示例中,它是在bash中进行除法,该方法仅了解整数算术。