Linux grep命令从json中查找密钥的值

Linux grep命令从json中查找密钥的值,json,linux,shell,curl,grep,Json,Linux,Shell,Curl,Grep,我有一个JSON输出,其中包含一个存储在变量中的对象列表 curl命令的输出:将在注释中发布,因为我无法在此处发布 我想将输出中显示的位置“ad6743fae9c54748b8644564c691ba58”处的值变灰,该位置每次运行curl命令时都会发生变化。我希望它作为输入传递给其他curl命令 请帮助使用jq: 卷曲'http://.../some.json“| jq.destination[0].AD6743FAE9C54748B8644564C69691BA58 像这样 #/usr/

我有一个JSON输出,其中包含一个存储在变量中的对象列表

curl命令的输出:将在注释中发布,因为我无法在此处发布

我想将输出中显示的位置“ad6743fae9c54748b8644564c691ba58”处的值变灰,该位置每次运行curl命令时都会发生变化。我希望它作为输入传递给其他curl命令

请帮助使用
jq

卷曲'http://.../some.json“| jq.destination[0].AD6743FAE9C54748B8644564C69691BA58

像这样

#/usr/bin/env python
#编码:utf-8
导入系统
导入json
aa='''{
“目的地”:[
{
“ad6743fae9c54748b8644564c691ba58”:{
“每秒限制字节数”:“0”,
“删除此项”:false,
“路径”:“s3testbucket”,
“服务器端加密”:false,
“提供者”:“s3”,
“访问密钥”:“XXXXXXXXXX”,
“访问密码”:“XXXXXXXXXXXXXXXXXX”
}
}
],
“请求id”:“d6e089bb-9729-423b-8319-d441e0a72202”
}'''
#aa=sys.argv[1]
bb=json.loads(aa)
打印bb[“请求id”]
“jq”是必需的。如果“ad6743fae9c54748b8644564c691ba58”本身每次都会更改,那么下面的脚本如何

of="data.json" && curl ..... -o $of > $of && key=$(cat $of | jq -r '.destination[0]|keys' | jq -r '.[]') && jq -r ".destination[0].$key" $of && unset key of
  • curl获得的数据作为“$of”的名称输出

  • “ad6743fae9c54748b8644564c691ba58”的位置检索为“$key”

  • 使用“$key”输出“ad6743fae9c54748b8644564c691ba58”的值

例如,在该脚本中,当“ad6743fae9c54748b8644564c691ba58”的位置未更改时,“ad6743fae9c54748b8644564c691ba58”可以更改为“abcdefg1234567”。

`{“目的地”:[{“AD6743FAE9C54748B864456691BA58”:{“每秒节流字节数”:“0”,“删除此项”:false,“路径”:“s3testbucket”,“服务器端加密”:false,“提供者”:“s3”,“访问密钥”:“XXXXXXXXXX”,“访问密钥”:“XXXXXXXXXXXXXXXXXX”}],“请求id”:“d6e089bb-9729-423b-8319-d441e0a72202”}`