jq 打印 csv,如下所示:
... | [.name, .userId, .groupId] | @csv'
Run Code Online (Sandbox Code Playgroud)
打印什么:
"nodea","0","6"
"nodeb","1","0"
Run Code Online (Sandbox Code Playgroud)
我如何处理它以获得“n/a”而不是 0,并且对于 >0 值适当的注释/注释,例如:
"nodea","n/a","group:6"
"nodeb","user:1","n/a"
Run Code Online (Sandbox Code Playgroud)
在 jq 中可行还是仅在后处理中可行,例如。在 awk 中?谢谢
jq解决方案:
样本input.json:
[
{
"name": "nodea",
"userId": 0,
"groupId": 6
},
{
"name": "nodeb",
"userId": 1,
"groupId": 0
}
]
Run Code Online (Sandbox Code Playgroud)
jq -r 'def pr($k): if .[$k] > 0 then $k+":\(.[$k])" else "n/a" end;
.[] | [ .name, pr("userId"), pr("groupId") ] | @csv' input.json
Run Code Online (Sandbox Code Playgroud)
输出:
"nodea","n/a","groupId:6"
"nodeb","userId:1","n/a"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1372 次 |
| 最近记录: |