Skip to content

Instantly share code, notes, and snippets.

@ipbastola
Last active September 3, 2024 14:40
Show Gist options
  • Save ipbastola/2c955d8bf2e96f9b1077b15f995bdae3 to your computer and use it in GitHub Desktop.
Save ipbastola/2c955d8bf2e96f9b1077b15f995bdae3 to your computer and use it in GitHub Desktop.
JQ to filter JSON by value

JQ to filter JSON by value

Syntax: cat <filename> | jq -c '.[] | select( .<key> | contains("<value>"))'

Example: To get json record having _id equal 611

cat my.json | jq -c '.[] | select( ._id | contains(611))'

Remember: if JSON value has no double quotes (eg. for numeric) to do not supply in filter i.e. in contains(611)

@mscomparin
Copy link

To get an array back and persist it to a file, I wrapped the whole expression in an array like this:

cat input.json | jq '[ .[] | select( .field | contains("something")) ]' > output.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment