给出JSON行
{"a":0,"b":{"c":"C"}}{"x":33}{"asd":889}
3个独立的JSON对象。
然后需要一一处理。拥有
这样的东西会很好echo "$json" | jq --first-one
预期输出:
{"a":0,"b":{"c":"C"}}
我找到了唯一可以删除第一个对象并输出其他对象的命令。 inputs
echo '{"a":0,"b":{"c":"C"}}{"x":33}{"asd":889}' | jq -c inputs
输出:
{"x":33}
{"asd":889}
在撰写此问题时,我找到了一种解决方法,但是看起来很麻烦
echo '{"a":0,"b":{"c":"C"}}{"x":33}{"asd":889}' | jq -c . | head -1
仅获得第一行...
答案 0 :(得分:2)
如果可能的话,一般应避免制浆。如果您的jq有input
,则可以简单地写:
echo '{"a":0,"b":{"c":"C"}}{"x":33}{"asd":889}' |
jq -n input
如果您的jq没有input
,那么现在是升级到jq 1.6的好时机。如果那不是一个选项,则一定要使用-s选项,例如jq -s '.[0]'