반응형
부제: 필터 하나로 JSON을 뽑고 걸러내고 변형한다
jq '.database' config.json # database 객체만 추출
jq -r '.features[]' config.json # 배열 원소를 따옴표 없이 한 줄씩
jq '.replicas * .database.pool' config.json # 값 계산
$ jq --version
jq-1.6
$ jq '.database' config.json
{
"host": "db.internal",
"port": 5432,
"pool": 10
}
$ jq -r '.features[]' config.json
auth
ratelimit
metrics
$ jq '.replicas * .database.pool' config.json
30jq는 JSON을 다루는 sed/awk에 해당한다. .key, .array[], select() 같은 필터 문법으로 원하는 값을 뽑고 걸러내고 새 구조로 바꾼다. API 응답을 grep으로 억지로 파싱하던 방식과 달리 문서 구조를 그대로 이해하기 때문에 중첩된 값도 정확히 짚는다. -r은 문자열을 따옴표 없이 뽑아 셸에서 바로 쓰기 좋고, -c는 한 줄로 압축한다. 데비안은 apt install jq, RHEL 계열은 EPEL을 켜고 dnf install jq로 설치한다.
이렇게도 쓴다
중첩된 값을 경로로 바로 짚는다.
jq '.database.host' config.json
배열 원소를 구분자로 이어 붙인다.
jq -r '.features | join(",")' config.json
객체의 키 목록만 뽑는다.
jq 'keys' config.json
조건에 맞는 원소만 걸러낸다.
jq '.ports[] | select(. > 8000)' config.json
API 응답에서 필요한 필드만 바로 추출한다. (curl + jq 조합)
curl -s https://api.github.com/repos/jqlang/jq | jq '.stargazers_count'
여러 필드를 새 객체로 재구성한다.
jq '{name: .service, ver: .version}' config.json반응형
'명령어 > Linux' 카테고리의 다른 글
| [리눅스] ncdu 디스크 사용량 분석기 (0) | 2026.07.16 |
|---|---|
| [리눅스] ag(the_silver_searcher) 코드베이스 전용 검색기 (0) | 2026.07.16 |
| [리눅스] bat 문법 강조가 되는 cat (0) | 2026.07.16 |
| [리눅스] fd 사람이 쓰기 편한 find 대체 (0) | 2026.07.16 |
| [리눅스] ripgrep(rg) grep보다 빠른 코드 검색 (0) | 2026.07.16 |