我正在尝试解析JSON文档,并在同一行上打印几个值。有没有办法获取以下文件:
{
"fmep": {
"foo": 112,
"bar": 234324,
"cat": 21343423
}
}
然后吐出来:
112 234324
我可以获得所需的值,但它们分别打印在不同的行上:
$ echo '{ "fmep": { "foo": 112, "bar": 234324, "cat": 21343423 } }' | jq '.fmep|.foo,.bar'
112
234324
如果某处有一个示例说明如何执行此操作,那么我会感激任何提示。
最佳答案
您的示例中最简单的方法是将String Interpolation与-r
选项一起使用。例如
echo '{ "fmep": { "foo": 112, "bar": 234324, "cat": 21343423 } }' | \
jq -r '.fmep| "\(.foo) \(.bar)"'
产生
112 234324
您可能还需要考虑将值放入数组中并使用@tsv例如
echo '{ "fmep": { "foo": 112, "bar": 234324, "cat": 21343423 } }' | \
jq -r '.fmep | [.foo, .bar] | @tsv'
产生制表符分隔的
112 234324
关于json - 在同一行上打印多个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46131727/