Jq Notes: Difference between revisions

From Federal Burro of Information
Jump to navigationJump to search
No edit summary
No edit summary
Line 16: Line 16:
  cat get_accounts_v4.json | jq '.accounts_and_users | .[] | select(.azure_account_id != null) | { account_name: .account_name, azure_account_id: .azure_account_id }| join(",")' > azure_accounts.report
  cat get_accounts_v4.json | jq '.accounts_and_users | .[] | select(.azure_account_id != null) | { account_name: .account_name, azure_account_id: .azure_account_id }| join(",")' > azure_accounts.report


== using jq to make aws json into csv ==
today's aws cli tip:
You are making a list of instances for a report.
aws ec2 describe-instances --query 'Reservations[].Instances[].[PrivateIpAddress,Tags[?Key==`Name`].Value | [0], State.Name]' --output text
Everything is great, except the instances "Name" tag has spaces in it.
Now you are importing it into Excel and it gets all mashed up. You want csv. But aws cli doesn't have an --output csv.
To the rescue jq ( Jquery ) (the awk of js).
aws ec2 describe-instances --query 'Reservations[].Instances[].[PrivateIpAddress,Tags[?Key==`Name`].Value | [0], State.Name]' --output json | \
jq '.[] | join(",")'


== Also See ==
== Also See ==


* [[AWS Notes]]
* [[AWS Notes]]

Revision as of 15:32, 7 February 2018


Selecting name from tags:

aws ec2 describe-instances | jq '.Reservations[].Instances[] | select(.LaunchTime > "2015-01-28") | select(.State.Code != 48) | [(.Tags[]|select(.Key=="Name")|.Value),.LaunchTime, .State.Name] | join(", ")'


to CSV (join on the end ):

azure location list --json | jq '.[] | .name  | join(", ")'

AWS account report:

cat get_accounts_v4.json | jq '.accounts_and_users | .[] | select(.aws_account_id != null) | { account_name: .account_name, aws_account_id: .aws_account_id }| join(",")' > aws_accounts.report

Azure account report:

cat get_accounts_v4.json | jq '.accounts_and_users | .[] | select(.azure_account_id != null) | { account_name: .account_name, azure_account_id: .azure_account_id }| join(",")' > azure_accounts.report

using jq to make aws json into csv

today's aws cli tip:

You are making a list of instances for a report.

aws ec2 describe-instances --query 'Reservations[].Instances[].[PrivateIpAddress,Tags[?Key==`Name`].Value | [0], State.Name]' --output text

Everything is great, except the instances "Name" tag has spaces in it.

Now you are importing it into Excel and it gets all mashed up. You want csv. But aws cli doesn't have an --output csv.

To the rescue jq ( Jquery ) (the awk of js).

aws ec2 describe-instances --query 'Reservations[].Instances[].[PrivateIpAddress,Tags[?Key==`Name`].Value | [0], State.Name]' --output json | \
jq '.[] | join(",")'

Also See