jq
Command
The jq
command filters and processes JSON input.
This command uses the well-known jq
JSON processor to manipulate incoming JSON. Please refer to the jq
manual for details.
Usage
jq [--no-rewrite] <filter>
Parameters
Parameter | Description | Required? | Default Value |
---|---|---|---|
filter | jq filter | ✔️ |
Options
Option | Description | Required? |
---|---|---|
--no-rewrite | Do not preprocess the jq filter, but send it as-is | ❌ |
By default, a jq
filter expression is rewritten to match the currently defined section (see Property Path). A filter expression like .foo.bar
will be rewritten to .reported.foo.bar
. In order to access a property via an absolute path like /metadata.protected
, you would need to write ./metadata.protected
.
It is possible to use the --no-rewrite
option to turn off this rewriting. Fix Inventory will not rewrite the filter expression, sou you would need to pass: {bar: .reported.foo.bar, protected: .metadata.protected}
.
Examples
Query EC2 instances and extract only the name property
> search is(aws_ec2_instance) limit 2 | jq .name
build-node-1
prod-23
Query EC2 instances and create a new JSON object for each entry with name and owner
> search is(aws_ec2_instance) limit 2 | jq {name: .name, owner: .tags.owner}
name: build-node-1
owner: frosty
---
name: prod-23
owner: bog-team