在jq中使用指数幂

时间:2016-07-21 05:56:20

标签: json jq

我得到包含一个字节的JSON对象,我正在转换为TB。一般来说,我喜欢这样做的方法是将1024除以4的幂。

我正在使用jq '.value|tonumber|(./(1024*1024*1024*1024))',但我更愿意将1024*1024*1024*1024替换为1024**41024^4之类的内容,无论如何要在{{1}中执行此操作}}?我还有另一种方法吗?

数据很简单,如下所示:

jq

1 个答案:

答案 0 :(得分:3)

不幸的是,数字上只有基本的数学运算。但是,您应该可以访问平台上提供的C Math功能。所以cstdlib中的很多内容应该是合理的游戏,例如pow()函数。

(.value | tonumber) / pow(1024; 4)

否则,我不知道任何其他方法,除了将其作为论据传递。

$ jq --argjson div "$((1024**4))" '(.value | tonumber) / $div' input.json