slurp 选项的 jq 等价物是什么?
What is the jq equivalent for the slurp option?
这会生成一个数组列表:
$ 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"
]
]
但是当我尝试将列表转换为数组而不对其进行 slurping 时,我得到了一个数组列表而不是单个数组:
$ echo -e "a 1\nb 2" | jq -R '[split(" ")]'
[
[
"a",
"1"
]
]
[
[
"b",
"2"
]
]
是否可以在不将结果通过管道传输到 jq
的新实例的情况下吸取 split
的结果?
与加倍split
:
echo -e "a 1\nb 2" | jq -sR 'split("\n")[:-1] | map(split(" "))'
输出:
[
[
"a",
"1"
],
[
"b",
"2"
]
]
在inputs
出现之前,问题的答案是"No"。使用 inputs
和 -n 命令行选项:
$ echo -e "a 1\nb 2" | jq -nR '[inputs|split(" ")]'
[
[
"a",
"1"
],
[
"b",
"2"
]
]
这会生成一个数组列表:
$ 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"
]
]
但是当我尝试将列表转换为数组而不对其进行 slurping 时,我得到了一个数组列表而不是单个数组:
$ echo -e "a 1\nb 2" | jq -R '[split(" ")]'
[
[
"a",
"1"
]
]
[
[
"b",
"2"
]
]
是否可以在不将结果通过管道传输到 jq
的新实例的情况下吸取 split
的结果?
与加倍split
:
echo -e "a 1\nb 2" | jq -sR 'split("\n")[:-1] | map(split(" "))'
输出:
[
[
"a",
"1"
],
[
"b",
"2"
]
]
在inputs
出现之前,问题的答案是"No"。使用 inputs
和 -n 命令行选项:
$ echo -e "a 1\nb 2" | jq -nR '[inputs|split(" ")]'
[
[
"a",
"1"
],
[
"b",
"2"
]
]