我没有得到任何使用 JQ 过滤器生成随机字符串的函数
我尝试使用 random 和 rand 函数生成随机字符串,但 JQ 给出错误,表示 random 或 rand 未定义。我使用的是1.7版本的JQ,但是这个版本不支持这些功能。
JQ 没有用于生成随机数据的内置函数,但您可以轻松构建自己的随机数据。例如,如果您有一个像这样的对象数组:
[
{
"foo": 42
},
{
"foo": 5
}
]
想要为每个对象添加一个伪随机的五个字符长的
id
字段,你可以这样做:
def random_strings:
def lcg($seed):
(105*$seed + 1)%pow(26; 5) | ., lcg(.);
lcg(now) | [97 + (./pow(26; range(5)))%26] | implode;
[., [limit(length; random_strings)]]
| transpose
| map({id: .[1]} + .[0])
结果将是:
[
{
"id": "flxai",
"foo": 42
},
{
"id": "gfqql",
"foo": 5
}
]