在一行中获取 jq 的输出
Get outputs from jq on a single line
我使用下面的输出:
(.issues[] | {key, status: .fields.status.name, assignee: .fields.assignee.emailAddress})
输出:
{
"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"}
或
{ "SEA-739", "Open", null }
{ "SEA-738", "Resolved", user2@mycompany.com }
-c
是您可能需要的
使用您在上面发布的输出,您可以进一步处理它:
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})'
不完全是对长版问题的回答,但对于用 Google 搜索此问题以从 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
@sh
而不是 @tsv
returns:
'SEA-739' 'Open' null
'SEA-738' 'Resolved' 'user2@mycompany.com'
此外,还有其他输出格式可以执行转义输出(如 @html
)或对其进行编码(如 @base64
)等操作。该列表可在 jq(1) 手册页的 Format strings and escaping 部分或在线 stedolan.github.io/jq/manual.
我使用下面的输出:
(.issues[] | {key, status: .fields.status.name, assignee: .fields.assignee.emailAddress})
输出:
{
"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"}
或
{ "SEA-739", "Open", null }
{ "SEA-738", "Resolved", user2@mycompany.com }
-c
是您可能需要的
使用您在上面发布的输出,您可以进一步处理它:
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})'
不完全是对长版问题的回答,但对于用 Google 搜索此问题以从 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
@sh
而不是 @tsv
returns:
'SEA-739' 'Open' null
'SEA-738' 'Resolved' 'user2@mycompany.com'
此外,还有其他输出格式可以执行转义输出(如 @html
)或对其进行编码(如 @base64
)等操作。该列表可在 jq(1) 手册页的 Format strings and escaping 部分或在线 stedolan.github.io/jq/manual.