InfraLab
JQ-YQ34 cmd

jq / yq チート集

JSON/YAML を CLI で扱う jq と mikefarah 版 yq の基本、配列・オブジェクト操作、select/map/reduce、AWS CLI や kubectl 出力抽出、Helm values 編集をまとめたチート集。

更新日
2026-05-29
参照範囲
公式ドキュメント / man page / 主要ベンダーCLI
対象実装
主要 Linux / BSD / ネットワーク機器 CLI の一般的な実装
免責
OS とバージョン差分は実環境で確認してください。

このチートシートの使いどころ

jq / yq チートシートは、JSON と YAML を CLI で抽出、変換、整形、集計するための実例集です。対象は jq と mikefarah 版 yq の一般的な現行バージョンです。kubectl、AWS CLI、Helm values、ログの JSON 出力を読みやすくし、必要なキーだけを安全に取り出す場面で使います。

34 / 34

jq .

jq / yq で jq . を実務運用で使う

Example
$ jq . response.json
jq .key

jq / yq で jq .key を実務運用で使う

Example
$ jq .name user.json
jq -r

jq / yq で jq -r を実務運用で使う

Example
$ jq -r .status response.json
jq .[]

jq / yq で jq .[] を実務運用で使う

Example
$ jq ".items[]" list.json
jq .[0]

jq / yq で jq .[0] を実務運用で使う

Example
$ jq ".[0]" array.json
jq length

jq / yq で jq length を実務運用で使う

Example
$ jq ".items | length" response.json
jq select

jq / yq で jq select を実務運用で使う

Example
$ jq ".items[] | select(.status == "Running")" pods.json
jq map

jq / yq で jq map を実務運用で使う

Example
$ jq ".items | map(.metadata.name)" pods.json
jq to_entries

jq / yq で jq to_entries を実務運用で使う

Example
$ jq "to_entries[] | [.key,.value]" tags.json
jq group_by

jq / yq で jq group_by を実務運用で使う

Example
$ jq "group_by(.status) | map({status: .[0].status, count: length})" list.json
jq reduce

jq / yq で jq reduce を実務運用で使う

Example
$ jq "reduce .items[] as $i (0; . + $i.size)" data.json
jq --arg

jq / yq で jq --arg を実務運用で使う

Example
$ jq --arg ns default ".items[] | select(.metadata.namespace == $ns)" pods.json
jq --slurp

jq / yq で jq --slurp を実務運用で使う

Example
$ jq --slurp "add" part-*.json
jq keys

jq / yq で jq keys を実務運用で使う

Example
$ jq "keys" object.json
jq sort_by

jq / yq で jq sort_by を実務運用で使う

Example
$ jq ".items | sort_by(.metadata.creationTimestamp)" pods.json
AWS extract instance IP

jq / yq で AWS extract instance IP を実務運用で使う

Example
$ aws ec2 describe-instances | jq -r ".Reservations[].Instances[].PrivateIpAddress"
AWS filter running

jq / yq で AWS filter running を実務運用で使う

Example
$ aws ec2 describe-instances | jq -r ".Reservations[].Instances[] | select(.State.Name=="running") | .InstanceId"
kubectl pod names

jq / yq で kubectl pod names を実務運用で使う

Example
$ kubectl get pods -A -o json | jq -r ".items[].metadata.name"
kubectl image list

jq / yq で kubectl image list を実務運用で使う

Example
$ kubectl get pods -A -o json | jq -r ".items[].spec.containers[].image" | sort -u
CloudTrail event names

jq / yq で CloudTrail event names を実務運用で使う

Example
$ jq -r ".Records[].eventName" cloudtrail.json | sort | uniq -c
yq .

jq / yq で yq . を実務運用で使う

Example
$ yq . values.yaml
yq -r

jq / yq で yq -r を実務運用で使う

Example
$ yq -r .image.repository values.yaml
yq eval all

jq / yq で yq eval all を実務運用で使う

Example
$ yq ea ". as $item ireduce ({}; . * $item)" base.yaml override.yaml
yq array images

jq / yq で yq array images を実務運用で使う

Example
$ yq ".spec.containers[].image" deploy.yaml
yq -N

jq / yq で yq -N を実務運用で使う

Example
$ yq -N ".metadata.name" multi-doc.yaml
yq -i

jq / yq で yq -i を実務運用で使う

Example
$ yq -i ".replicaCount = 3" values.yaml
yq env

jq / yq で yq env を実務運用で使う

Example
$ IMAGE=nginx:1.27 yq -i ".image = strenv(IMAGE)" values.yaml
yq select doc

jq / yq で yq select doc を実務運用で使う

Example
$ yq ". | select(.kind == "Deployment")" all.yaml
Helm value set

jq / yq で Helm value set を実務運用で使う

Example
$ yq -i ".controller.replicaCount = 2" values.yaml
Kustomize patch image

jq / yq で Kustomize patch image を実務運用で使う

Example
$ yq -n ".apiVersion="apps/v1" | .kind="Deployment" | .metadata.name="web""
List services ports

jq / yq で List services ports を実務運用で使う

Example
$ yq ".spec.ports[].port" service.yaml
Change container image

jq / yq で Change container image を実務運用で使う

Example
$ yq -i "(.spec.template.spec.containers[] | select(.name == "app") | .image) = "nginx:1.27"" deploy.yaml
Delete yaml key

jq / yq で Delete yaml key を実務運用で使う

Example
$ yq -i "del(.metadata.annotations)" deploy.yaml
Merge YAML

jq / yq で Merge YAML を実務運用で使う

Example
$ yq eval-all "select(fileIndex == 0) * select(fileIndex == 1)" base.yaml patch.yaml
対応ツール
Related