jq 사용법: 설치, JSON 키 필터, 배열 map, curl 파이프
jq 설치, JSON 필드 추출, 배열 map, curl 파이프로 API 응답을 짧게 보기.
REST API나 CI 로그를 볼 때 jq로 터미널에서 JSON을 걸러내고 변형할 수 있습니다. macOS·Linux·Windows 설치, 필드 추출, 배열 map, curl 파이프를 hereink 독자용으로 정리합니다.
검색어는 jq로 JSON 처리하고 curl과 파이프하기. 설치, .key, map, API 응답 축약까지 다룹니다.
jq가 해결하는 것
json.tool보다 유연
Python json.tool은 포맷만. jq는 .data.items[0].id만 출력, 배열 필터, 중첩 flatten 가능.
curl과 짝
API 본문은 수백 줄인 경우가 많습니다. | jq '.field'로 필요한 키만 남깁니다.
확인:
jq --version. 공식:jqlang.org, GitHubjqlang/jq.
세 OS에 jq 설치
- 1macOS(Homebrew)
brew install jq.which jq,jq --version. - 2Linux
Debian/Ubuntu:
sudo apt update && sudo apt install jq. Fedora:sudo dnf install jq. Arch:sudo pacman -S jq. - 3Windows
winget install jqlang.jq또는choco install jq. 새 터미널에서jq --version. - 4첫 필터
echo '{"ok":true}' | jq .ok→true.
키 필터와 배열 map
echo '{"user":{"name":"Lin"}}' | jq .user.name
echo '{"items":[{"id":1},{"id":2}]}' | jq '.items[]'
echo '{"items":[{"id":1},{"id":2}]}' | jq '.items | map(.id)'
echo '[{"k":"a","v":1},{"k":"b","v":2}]' | jq '[.[] | select(.v > 1)]'필터는 작은따옴표로. 점 .은 현재 JSON, []는 배열 반복.
curl 파이프
| 상황 | 예 | 메모 |
|---|---|---|
| 공개 API | curl -s https://api.github.com/repos/jqlang/jq | jq '{name, stars: .stargazers_count}' | 필요 필드만 |
| 원시 문자열 | curl -s … | jq -r '.token' | -r로 따옴표 제거 |
| 한 줄 JSON | curl -s … | jq -c '.items[]' | 줄당 객체 하나 |
- 맞음
- REST 필드 확인, 컨테이너 JSON 로그 필터, CI 메타데이터 파싱.
- 안 맞음
- 대용량 JSON 제자리 편집; 비 JSON 텍스트.
parse error는?
입력이 유효 JSON이 아님. jq . 단독 테스트. NDJSON은 jq -s.
Windows에서 jq를 못 찾나요?
터미널 재시작. where jq.
jq와 yq가 같나요?
아닙니다. jq는 JSON 전용.
필드 정리 후 한 장에
API 구조가 보여도 경계는 한 그림이 낫습니다. 공간 만들기.