我有一种情况,我试图从gerrit查询的输出中提取一些数据。但是无法使用awk
命令:
ssh -p 29418 gerrit.abc.se gerrit query --format=JSON project:dddd status:merged branch:master change:Ie2ef9e47f --submit-records
以上命令的输出:
{
"project": "dddd",
"branch": "master",
"id": "Ie2ef9e47fc6c046091d93521198bf0a1075cb77e",
"number": 3984134,
"subject": "adding configuration",
"owner": {
"name": "abc",
"email": "abc.com",
"username": "eshakuy"
},
"url": "https://gerrit.abc.se/3984134",
"commitMessage": "adding configuration\n\nChange-Id: Ie2ef9e47fc6c046091d93521198bf0a1075cb77e\n",
"createdOn": 1533208993,
"lastUpdated": 1536301464,
"open": false,
"status": "MERGED",
"submitRecords": [
{
"status": "OK",
"labels": [
{
"label": "Verified",
"status": "OK",
"by": {
"name": "ADP Automation",
"username": "adpauto"
}
},
{
"label": "Code-Review",
"status": "OK",
"by": {
"name": "abc",
"email": "abc.com",
"username": "eeeee"
}
}
]
}
]
}
{
"type": "stats",
"rowCount": 1,
"runTimeMilliseconds": 10,
"moreChanges": false
}
我想从上面的输出中提取的是:
submit Records:
label:Verified status:OK name:ADP Automation
lable:Code-Review status:OK name:abc
那是我需要显示/存储在csv文件中的唯一信息。
答案 0 :(得分:2)
您可以像下面的示例一样使用jq程序:
ssh -p 29418 gerrit.abc.se gerrit query --format=JSON project:dddd status:merged branch:master change:Ie2ef9e47f --submit-records |
jq --raw-output '
.submitRecords[]?
| .labels[]
| .label + " = " + .status + " by " + .by.name'
Code-Review => OK by Marcelo Avila de Oliveira
Verification => OK by Gerrit
查看有关jq here的更多信息。