jq 将输出合并到由空格分隔的一行上

sta*_*ser 14 jq

我正在尝试jq在 Windows 机器上运行查询,它从单独一行的输出中提取值

jq -r .Accounts[].Id
Run Code Online (Sandbox Code Playgroud)

输出

204359864429
224271824096
282276286062
210394168456
090161402717
Run Code Online (Sandbox Code Playgroud)

如何运行jq查询,以便将输出组合在由空格分隔的单行上

这就是我需要的-

204359864429 224271824096 282276286062 210394168456 090161402717
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

Rya*_*yan 13

您可以使用@sh格式化程序:

jq -r ".Accounts[].Id | @sh"

来自 jq 文档:

输入经过转义,适合在 POSIX shell 的命令行中使用。如果输入是数组,则输出将是一系列以空格分隔的字符串。

参考:

https://stedolan.github.io/jq/manual/#Basicfilters


Ini*_*ian 12

通常的方法是使用@csv@tsv运算符将结果转换为 CSV 或制表符分隔格式。这些运算符需要将结果包含在数组中。对于你的情况也有一个空格分隔,我们可以做一个简单的join(" ")操作

jq -r '[.Accounts[].Id]|join(" ")'
Run Code Online (Sandbox Code Playgroud)