我正在尝试解析
JSON文档并在同一行上打印几个值.有没有办法采取以下文件:
{ "fmep": { "foo": 112,"bar": 234324,"cat": 21343423 } }
并吐出:
112 234324
我可以得到我想要的值,但它们打印在不同的行上:
$echo '{ "fmep": { "foo": 112,"cat": 21343423 } }' | jq '.fmep|.foo,.bar' 112 234324
如果有一个示例显示如何执行此操作,我会很感激任何指针.
解决方法
您的示例中最简单的方法是使用
String Interpolation和-r选项.例如
echo '{ "fmep": { "foo": 112,"cat": 21343423 } }' | \ jq -r '.fmep| "\(.foo) \(.bar)"'
产生
112 234324
您可能还需要考虑将值放在数组中并使用@tsv,例如
echo '{ "fmep": { "foo": 112,"cat": 21343423 } }' | \ jq -r '.fmep | [.foo,.bar] | @tsv'
它产生制表符分隔
112 234324