Linux & Ops
jq — zpracování JSON na příkazové řádce
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.