·터미널 명령어

jq

텍스트 처리

쓰는 꼴

jq '[filter]' [file.json]

JSON을 제 나름의 작은 언어로 걸러 모양을 바꿉니다. 기본으로 깔려 있지 않은 경우가 많고, 문자열의 따옴표를 벗기려면 -r이 있어야 합니다.

자주 쓰는 옵션

옵션
-rRaw output, so strings come out without quotes
-cOne compact line per result
-eSet the exit status from the result, for scripts
--argPass a shell string in as a jq variable
-sSlurp the whole input into one array
-nStart from null input and build output yourself

예시

curl -s api/users | jq -r '.[].name'

Every name, unquoted, one per line.

jq '.items | length' data.json

Counts the entries in an array.

jq -c '.[] | {id, name}' big.json

Two fields per row, compact.

파이프로 이어 쓰는 것이 본래 용도입니다. 한 명령이 다 하는 것보다 셋을 잇는 편이 짧습니다.

읽는 방법

  • 대괄호 [ ]는 넣어도 되고 안 넣어도 되는 자리입니다.
  • 점 셋 …은 여러 개를 이어 쓸 수 있다는 뜻입니다.
  • 옵션은 대소문자를 가립니다 — -r과 -R이 다른 명령도 있습니다.

자주 묻는 것

Q. jq은 무엇을 하나요?

JSON을 제 나름의 작은 언어로 걸러 모양을 바꿉니다. 기본으로 깔려 있지 않은 경우가 많고, 문자열의 따옴표를 벗기려면 -r이 있어야 합니다.

Q. 어떻게 치나요?

jq '[filter]' [file.json] — 대괄호는 생략할 수 있는 자리입니다.

Q. 옵션은 몇 개나 자주 쓰나요?

여기 정리한 것은 6개입니다. 전체 목록은 man jq에 있습니다. 이 명령은 텍스트 처리 갈래입니다.

같이 보는 명령

man 페이지: man jq