...
https://github.com/stedolan/jq/releases/download/jq-1.5/jq-win64.exe 를 다운받아서 PATH 가 걸린 폴더에 넣습니다.
사용법
Note |
---|
jq tutorial 문서를 참고하세요. |
curl 로 github 의 jq 소스에서 최근 5개의 커밋을 확인하는 REST API 호출을 할 경우를 생각해 봅시다.
...
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 '.[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} ]' |