我有以下json:
[
{
"uuid": "rvbrc7y6a5d6xpz37av534zv3a",
"templateUuid": "101",
"trashed": "N",
"createdAt": "2018-07-26T05:48:51Z",
"updatedAt": "2018-07-27T00:26:35Z",
"changerUuid": "Y7WX2RXJ35GCLLERQA2T74CKNM",
"itemVersion": 3,
"vaultUuid": "awn3jry3oo55xdcfgs7bnlyioa",
"overview": {
"ps": 0,
"title": "Env Vars - CSP 1"
}
},
{
"uuid": "xtf3vdsnw5ardldytwh6edihzu",
"templateUuid": "001",
"trashed": "N",
"createdAt": "2013-10-15T01:29:57Z",
"updatedAt": "2016-11-22T20:57:47Z",
"changerUuid": "Y7WX2RXJ35GCLLERQA2T74CKNM",
"itemVersion": 1,
"vaultUuid": "qmorozyspqhb26kr4z7nbt7hpy",
"overview": {
"URLs": [
{
"u": "https://example.com"
}
],
"ainfo": "*******@gmail.com",
"ps": 72,
"title": "https://example.com",
"url": "https://example.com"
}
}
]
数组中还有另外500个对象需要解析。三个对象的.overview.title
包含字符串“ Env Vars”。
我正在尝试使用jq
来使输出看起来像这样:
"rvbrc7y6a5d6xpz37av534zv3a", "Env Vars - CSP 1"
"another uuid", "Env Vars - CSP 2"
"yet another uuid", "Env vars - CSP n"
我尝试了一些不同的事情,包括:
cat list.json | jq -c '.[] | .uuid, .overview.title'
cat list.json | jq -c '.[].overview.title | select(contains("Env Var"))'
以及上述内容的许多不同变体。
这是我第一次在生气中使用jq
,所以对我来说这是很新的。 jq
doco并不是很有帮助。
请给我一个线索。
答案 0 :(得分:1)
选择.overview.title
包含Env Vars
的对象,从中提取.uuid
,制作UUID和标题对的数组,然后将其馈送到@csv
过滤器。
.[]
| .overview.title as $t
| select($t | index("Env Vars"))
| [.uuid, $t]
| @csv
请注意,您需要在命令行上为jq指定-r
/ --raw-output
标志,以产生有效的CSV。