这将生成一个数组列表:
$ echo -e "a 1\nb 2" | jq -R 'split(" ")'
[
"a",
"1"
]
[
"b",
"2"
]
当我lur喝输入时,我得到一个数组:
$ 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
的新实例中?
答案 0 :(得分:1)
使用 double split
:
echo -e "a 1\nb 2" | jq -sR 'split("\n")[:-1] | map(split(" "))'
输出:
[
[
"a",
"1"
],
[
"b",
"2"
]
]
答案 1 :(得分:1)
在inputs
出现之前,问题的答案为“否”。使用inputs
和-n命令行选项:
$ echo -e "a 1\nb 2" | jq -nR '[inputs|split(" ")]'
[
[
"a",
"1"
],
[
"b",
"2"
]
]