Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

jq — zpracování JSON na příkazové řádce

01. 01. 2024 1 min čtení intermediate

JSON je všude — API, konfigurace, logy. jq je jako sed/awk pro JSON — filtruje a transformuje data přímo z terminálu.

Základy

sudo apt install jq echo ‘{“name”:”test”,”value”:42}’ | jq ‘.’

Filtrování

curl -s api/data | jq ‘.results[0].name’ jq ‘.[] | .email’ users.json jq ‘.[] | select(.age > 30)’ users.json jq ‘.[] | {name: .name, email: .email}’ users.json

Transformace

jq ‘{hostname: .name, cores: .cpu}’ server.json jq -r ‘.[] | [.name, .email] | @csv’ users.json jq -s ‘.[0] * .[1]’ defaults.json overrides.json

Agregace

jq ‘.users | length’ data.json jq ‘[.[] | .price] | {min: min, max: max, avg: (add / length)}’ products.json jq ‘[.[] | .category] | unique’ products.json

Příklady

curl -s ‘https://api.github.com/users/torvalds/repos’ | jq ‘.[] | {name, stars: .stargazers_count}’ kubectl get pods -o json | jq ‘.items[] | select(.status.phase != “Running”) | .metadata.name’ cat app.log | jq -c ‘select(.level == “error”) | {time: .timestamp, msg: .message}’

jq je nezbytný

Pro API a JSON data jq dramaticky zrychlí práci.

jqjsonclilinux