Chris
Chris

Reputation: 1019

jq filter- unexpected "null"s

input json:

{
  "id": 381,
  "name": "Module",
  "value": "C-A",
  "locked": false
}
{
  "id": 381,
  "name": "Module",
  "value": "",
  "locked": false
}
{
  "id": 381,
  "name": "Module",
  "value": "",
  "locked": false
}

And I want to remove all objects with value unset "" I have such filter but it prints also null - how to rid it of?

$ jq 'del(select(.value == ""))' /tmp/intest
{
  "id": 381,
  "name": "Module",
  "value": "C-A",
  "locked": false
}
null
null

update: I want also to join non-empty values but get error:

$ jq 'select(.value!="")|.value|join(",")' /tmp/intest
jq: error (at /tmp/intest:6): Cannot iterate over string ("C-A")

Upvotes: 2

Views: 6274

Answers (1)

hek2mgl
hek2mgl

Reputation: 157947

Just revert the logic:

jq 'select(.value!="")'

Upvotes: 4

Related Questions