我已经花了大约一个小时来弄弄这个,而且我对jq
和json
来说还很陌生。我来自系统背景,并且具有相当不错的bash
脚本编写技能,但是这些jq
的东西确实让我很难受。
示例json
的输出:
{
"id": 2,
"name": "Cluster B"
}
{
"id": 1,
"name": "Cluster A"
}
所需的输出:
"1:Cluster A"
"2:Cluster B"
有人知道该怎么做吗?
答案 0 :(得分:1)
您可以在调用jq之后进行排序,但是一种无需任何后处理的排序方法是将-s命令行选项与以下过滤器配合使用:
sort_by(.id)[]
| "\(.id): \(.name)"
在这里使用字符串插值避免了将.id明确转换为字符串的情况。
如果输入文件比预期的输出大得多,建议避免使用-s选项,而建议使用inputs
和-n命令行选项。例如:
[inputs | (.id|tostring) + ":" + (.name|tostring)] | sort[]