首页 > 解决方案 > 在 JQ 中使用具有多个参数的 C 数学函数

问题描述

如何在 JQ 中使用带有多个参数的 C 数学函数?手册中没有示例。它说的是:

采用单个输入参数(例如sin())的 C 数学函数可用作零参数jq函数。采用两个输入参数(例如pow())的 C 数学函数可用作忽略两个参数的 jq 函数.采用三个输入参数的 C 数学函数可用作忽略的三参数 jq 函数.

我已经弄清楚如何将单个输入参数函数实现为零参数 jq 函数:

> echo '{"a": 10.12}' | jq '.a | floor' 
10

我如何使用类似的东西pow

手册中的“忽略的 jq 函数.”是什么意思?他们是否忽略了管道输入的内容,从某种意义上说,他们不将其作为参数,与仅从管道中获取参数的一个输入参数情况相反?

标签: jqpowclib

解决方案


这很简单,只需通过以下方式分隔函数参数;

> echo '{"a": 10.12}' | jq '. | pow(.a;.a)' 
20051775181.748566

关于忽略 的 jq 函数.的含义:似乎在单输入参数函数的情况下,例如floor,实际发生的是.使用默认参数,因此无需实际提及任何参数。

在 2 个或更多输入参数的情况下,这当然不再适用,因此不应用默认参数,并且两个参数都必须显式传递。


推荐阅读