Json 在一条线上从jq获取输出
我使用以下输出: 输出:Json 在一条线上从jq获取输出,json,jq,Json,Jq,我使用以下输出: 输出: { "key": "SEA-739", "status": "Open", "assignee": null } { "key": "SEA-738", "status": "Resolved", "assignee": "user2@mycompany.com" } 但我需要解析每一行,但就密钥组而言,很难确定哪个受让人是哪个密钥的受让人。这是否可以使用jq在一行中生成一个束 预期产出: { "key": "SEA-7
{
"key": "SEA-739",
"status": "Open",
"assignee": null
}
{
"key": "SEA-738",
"status": "Resolved",
"assignee": "user2@mycompany.com"
}
但我需要解析每一行,但就密钥组而言,很难确定哪个受让人是哪个密钥的受让人。这是否可以使用jq在一行中生成一个束
预期产出:
{ "key": "SEA-739", "status": "Open", "assignee": null }
{ "key": "SEA-738", "status": "Resolved", "assignee": "user2@mycompany.com"}
或
-c
是您可能需要的
使用上面发布的输出,您可以进一步处理它:
或者只需更改原始命令即可
来自
jq-r“(.issues[]|{key,status:.fields.status.name,assignee:.fields.assignee.emailAddress})”
至
jq-c“(.issues[]|{key,status:.fields.status.name,assignee:.fields.assignee.emailAddress})”
这并不是一个很长问题的答案,但对于那些在谷歌上搜索jq其他单行输出格式的人来说:
$ jq -r '[.key, .status, .assignee]|@tsv' <<<'
{
"key": "SEA-739",
"status": "Open",
"assignee": null
}
{
"key": "SEA-738",
"status": "Resolved",
"assignee": "user2@mycompany.com"
}'
SEA-739 Open
SEA-738 Resolved user2@mycompany.com
此外,还有其他输出格式可以执行诸如转义输出之类的操作,如
@html
,或者像@base64
一样对其进行编码。该列表可在jq(1)手册页的格式字符串和转义部分或在线获取。tsv非常重要,如果没有它(或@sh
),我的输出在其自己的行中有每个值。有用的回答!我在其他任何地方都找不到这个“字符串”版本(而不是json格式)。
{ "SEA-739", "Open", null }
{ "SEA-738", "Resolved", user2@mycompany.com }
jq -c . input
{"key":"SEA-739","status":"Open","assignee":null}
{"key":"SEA-738","status":"Resolved","assignee":"user2@mycompany.com"}
jq -r '(.issues[] | {key, status: .fields.status.name, assignee: .fields.assignee.emailAddress})'
jq -c '(.issues[] | {key, status: .fields.status.name, assignee: .fields.assignee.emailAddress})'
$ jq -r '[.key, .status, .assignee]|@tsv' <<<'
{
"key": "SEA-739",
"status": "Open",
"assignee": null
}
{
"key": "SEA-738",
"status": "Resolved",
"assignee": "user2@mycompany.com"
}'
SEA-739 Open
SEA-738 Resolved user2@mycompany.com
'SEA-739' 'Open' null
'SEA-738' 'Resolved' 'user2@mycompany.com'