Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

https://github.com/stedolan/jq/releases/download/jq-1.5/jq-win64.exe 를 다운받아서 PATH 가 걸린 폴더에 넣습니다.

사용법

Note

jq tutorial 문서를 참고하세요.


curl 로 github 의 jq 소스에서 최근 5개의 커밋을 확인하는 REST API 호출을 할 경우를 생각해 봅시다.

...

jq 에 '.' 옵션을 사용하면 json 을 보기 좋게 포맷팅해서 표시하게 됩니다. 

Code Block
curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.'


array 원소 접근

array 의 로 넘어온 commit 목록에서 특정 원소에 접근하려면 .[element_num] 형식의 문법을 사용하면 되며 아래는 두 번째 커밋 정보를 출력합니다.

Code Block
curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.[1]'

filter 사용

| 연산자로 결과를 필터에 전달하여 처리할 수 있습니다. 아래는 가장 최근 커밋 정보에서 커밋 메시지, 커미터, 날자를 출력합니다.  

Code Block
 curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' |jq '.[0] | {message: .commit.message, name: .commit.committer.name, date: .commit.author.date}' 


모든 원소에 filter 적용

숫자 없이 [ ] 연산자를 사용하면 모든 원소를 의미하므로 전체 배열에 필터에 적용할 수 있습니다.

아래는 최근 5개 커밋에서 정보를 뽑아서 각각 object 로 만들어서 리턴합니다.

Code Block
 curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' |jq '.[] | {message: .commit.message, name: .commit.committer.name, date: .commit.author.date}' 


결과물 collect

필터를 통해 처리한 개별 결과를 하나로 묶으려면 필터의 결과물을 배열로 만들겠다고 jq 에게 알려주어야 합니다.

[  ] 는 배열을 의미하는 연산자이므로 필터를 감싸주면 결과물을 배열로 만들어 줍니다.


아래는 최근 5개 커밋에서 정보를 뽑아서 배열의 원소로 만들어서 리턴합니다.

Code Block
 curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' |jq '[  .[] | {message: .commit.message, name: .commit.committer.name, date: .commit.author.date}  ]' 


같이 보기

Ref