jq
| 필터 | 의미 | 예시 |
|---|---|---|
. | 입력 그대로 (pretty print 효과) | jq '.' file.json |
.key | 객체에서 키 추출 | .name |
.[] | 배열을 풀어서 각 원소를 스트림으로 | .packages[] |
.[N] | 배열 N번째 원소 | .[0] |
| | 파이프 | .users[] | .name |
, | 여러 값 동시 추출 | .name, .version |
# json[packages][name]:json[packages][version] 추출
jq -r '.packages[] | "\(.name):\(.version)"' installed.json-r (raw)→ 따옴표 없이 출력 (“foo” → foo)"\(.name):\(.version)"→ 문자열 보간 (Python f-string과 유사)
# 전체 구조 보기 (pretty print)
jq '.' file.json | less
# 최상위 키들만
jq 'keys' file.json
# 객체의 각 키:값 타입 확인
jq 'to_entries | map({key: .key, type: (.value | type)})' file.json
# 깊이 1단계만 보기
jq 'map_values(type)' file.json
# 특정 경로의 타입 확인 (배열인지 객체인지)
jq '.packages | type' file.json고위험 카테고리들 (정화기/템플릿/직렬화 관련 패키지)
html,twig,smarty,phpunit,monolog,dompdf,tcpdf등..