`jq -nR input` 和 `jq -R split(" ”)`?

问题描述 投票:0回答:1

乍一看,使用

inputs
splits
似乎产生相同的结果:

$ seq 3 | jq -nR 'inputs|tonumber'
1
2
3
$ seq 3 | jq -R 'splits("\n")|tonumber'
1
2
3

但是当我尝试减少输入时,

inputs
起作用了:

$ seq 3 | jq -nR 'reduce inputs as $_ (0; . + ($_|tonumber))'
6

但是

splits
不起作用:

$ seq 3 | jq -R 'reduce splits("\n") as $_ (0; . + ($_|tonumber))'
1
2
3

为什么

splits
不起作用?

jq
1个回答
0
投票

seq 3 | jq -R 'splits("\n")|tonumber'
实际上产生三个输入,而
splits
不执行任何操作。也许您打算跑步
seq 3 | jq -Rs 'splits("\n")|tonumber'
jq -Rs
生成一个字符串,中间有换行符。

© www.soinside.com 2019 - 2024. All rights reserved.