输入内容(somejson.json(是
{ "m1": "1 some m1", "m2": null , "m3" : "unwanted"}
{ "m1": "2 some m1", "m3" : "unwanted"}
{ "m1": "3 some m1", "m2": "3 some m2" , "m3" : "unwanted"}
{ "m1": "4 some m1", "m3" : "unwanted"}
是否有提取的选项,例如M1。还要提取M2如果存在?
示例。对于M1,我使用以下命令
cat somejson.json |jq '.m1'
输出
"1 some m1"
"2 some m1"
"3 some m1"
"4 some m1"
对于M2,我使用以下命令
cat somejson.json |jq '.m2'
输出
null
null
"3 some m2"
null
,但我想要合并的结果,包括M1和M2,如下
"1 some m1"
"2 some m1"
"3 some m1"
"3 some m2"
"4 some m1"
获得两个值;如果不存在,它们将是null
。然后只需从结果中过滤零。
<somejson.json jq '.m1, .m2 | select(. != null)'
始终提取m1
:
jq '.m1, if (.m2 != null) then .m2 else empty end' somejson.json