jq:按顺序仅打印特定的键和值

3 unix sorting json key jq

假设我有以下 JSON:

{"a": 1, "b": 2", "c": 3}

使用jq也许是 Unix,我想得到以下输出:

c 3
a 1
Run Code Online (Sandbox Code Playgroud)

有两件事正在发生 - 首先,我只打印两个键和值,并且我按照我想要的方式进行排序。

我知道如何打印键和值,甚至只打印一些键和值,但我似乎无法按照我想要的方式对它们进行排序(不是按字母顺序或算法排序)。

pea*_*eak 6

根据您的输入,过滤器

( {c}, {a} )
| to_entries[]
| "\(.key) \(.value)"
Run Code Online (Sandbox Code Playgroud)

产生所需的输出(您可能需要使用 -r 命令行选项)。

如果您想要的键的顺序由数组 $a 指定,那么您可以编写:

. as $in
| $a[]
| "\(.) \($in[.])"
Run Code Online (Sandbox Code Playgroud)

ETC。