这将生成一个数组列表:
$ echo -e "a 1\nb 2" | jq -R 'split(" ")'
[
"a",
"1"
]
[
"b",
"2"
]当我关闭输入时,会得到一个数组:
$ echo -e "a 1\nb 2" | jq -R 'split(" ")' | jq -s .
[
[
"a",
"1"
],
[
"b",
"2"
]
]但是,当我试图将列表转换为数组时,不需要消耗它,就会得到一个数组列表,而不是一个数组:
$ echo -e "a 1\nb 2" | jq -R '[split(" ")]'
[
[
"a",
"1"
]
]
[
[
"b",
"2"
]
]是否可以在不将结果传递到新的split实例的情况下关闭jq的结果?
发布于 2018-07-02 13:47:07
在inputs出现之前,这个问题的答案是“不”。使用inputs和-n命令行选项:
$ echo -e "a 1\nb 2" | jq -nR '[inputs|split(" ")]'
[
[
"a",
"1"
],
[
"b",
"2"
]
]发布于 2018-07-02 09:23:49
双split
echo -e "a 1\nb 2" | jq -sR 'split("\n")[:-1] | map(split(" "))'产出:
[
[
"a",
"1"
],
[
"b",
"2"
]
]https://stackoverflow.com/questions/51132530
复制相似问题