jqは次のようにcsvを印刷します。
... | [.name, .userId, .groupId] | @csv'
印刷する項目:
"nodea","0","6"
"nodeb","1","0"
0の代わりに "n / a"を取得し、> 0の値に対して適切なコメント/コメントを取得するにはどうすればよいですか?例:
"nodea","n/a","group:6"
"nodeb","user:1","n/a"
jqで可能ですか、それとも後処理でのみ可能ですか?え、え?ありがとう
答え1
jq
解決策:
サンプルinput.json
:
[
{
"name": "nodea",
"userId": 0,
"groupId": 6
},
{
"name": "nodeb",
"userId": 1,
"groupId": 0
}
]
jq -r 'def pr($k): if .[$k] > 0 then $k+":\(.[$k])" else "n/a" end;
.[] | [ .name, pr("userId"), pr("groupId") ] | @csv' input.json
出力:
"nodea","n/a","groupId:6"
"nodeb","userId:1","n/a"