Random jq:在字段中生成UUID

Random jq:在字段中生成UUID,random,jq,uuid,Random,Jq,Uuid,我需要用UUID唯一地标记记录(对于关联id)。我看不到一个直接的方法,通过选项来做这件事,这是可能的吗?如果没有,是否有某种解决方法可以做到这一点 甚至可以在jq中生成随机数或字符串吗?jq目前不支持UUID生成,因此您最好将UUID输入到jq中,例如,沿着以下路线: ruby -e 'require "securerandom"; p SecureRandom.uuid' | jq '{uuid: .}' { "uuid": "5657dd65-a495-4487-9887-c7f0e0

我需要用UUID唯一地标记记录(对于关联id)。我看不到一个直接的方法,通过选项来做这件事,这是可能的吗?如果没有,是否有某种解决方法可以做到这一点


甚至可以在jq中生成随机数或字符串吗?

jq目前不支持UUID生成,因此您最好将UUID输入到jq中,例如,沿着以下路线:

ruby -e 'require "securerandom"; p SecureRandom.uuid' | jq '{uuid: .}'
{
  "uuid": "5657dd65-a495-4487-9887-c7f0e01645c9"
}
不幸的是,jq的PRNG贡献尚未正式发布。有关以jq编写的PRNG发生器示例,请参见例如rosettacode:

从UUID的无限流中读取 假设uuid生成器(如uuidgen)可用,您可以使用
输入
输入
,如下所示:

jq -nR '[range(0;10) | input]' < <(while true; do uuidgen ; done)

jq-nR'[range(0;10)| input]'<。我不可能将所有数据都存储到内存中,在处理之前,我也不一定知道文件中有多少json对象。有没有一种方法可以生成无限的UUID流,并使用jq将其连接到每个json对象而不使用slurping?我会使用--argfile(或者可能是--slurpfile)读取json,并使用一个或多个输入读取无限的UUID流,如更新后的答案所示。