Jq Notes

From Federal Burro of Information
(Redirected from JQuery Notes)
Jump to navigationJump to search


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