Jq Notes: Difference between revisions

From Federal Burro of Information
Jump to navigationJump to search
No edit summary
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 4: Line 4:


  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(", ")'
  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(",")'
== Getting the project id out of a gitlab runner detail view ==
curl -s --header "PRIVATE-TOKEN: ${TOKEN}" "https://gitlab.com/api/v4/runners/XXX"
gives:
<pre>
  ... PREAMBLE
  "projects": [
    {
      "id": XXX,
      "description": "",
      "name": "MyProject",
      STUFF
    },
    ... MORE
</pre>
we want to remove the dead runenr, but it's associated with many project, so we want to extract just the project ids for iteration over.
Like this:
curl -s URL | jq '.projects[] | .id'
XXX
YYY
== Also See ==
* [[AWS Notes]]

Latest revision as of 16:12, 3 March 2020


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(",")'

Getting the project id out of a gitlab runner detail view

curl -s --header "PRIVATE-TOKEN: ${TOKEN}" "https://gitlab.com/api/v4/runners/XXX"

gives:

  ... PREAMBLE
  "projects": [
    {
      "id": XXX,
      "description": "",
      "name": "MyProject",
      STUFF
    },
    ... MORE

we want to remove the dead runenr, but it's associated with many project, so we want to extract just the project ids for iteration over. Like this:

curl -s URL | jq '.projects[] | .id'
XXX
YYY

Also See