jq

http://stedolan.github.io/jq


커맨드라인에서 JSON 문자열을 아름답게 볼 수 있도록 해주는 프로그램.

대용량 데이터를 한 줄씩 JSON 포맷으로 저장해서 사용하는 나에겐 가뭄의 한줄기 단비같은 존재.



[설치]

http://stedolan.github.io/jq/download 가서 적절한 바이너리 파일을 다운로드한 다음 chmod 755로 실행권한만 주면 사용준비 끝.



[예제]

아래와 같은 형태로, 앞 명령어의 결과물이 JSON 문자열일때 파이프라인으로 넘겨받아 파싱 후 아름답게 출력해준다.


// curl로 API를 요청해서 받은 JSON 문자열 파싱,출력
[root@localhost]# curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.'

// JSON 문자열로 된 로그파일의 10줄을 읽어 파싱
[root@localhost]# head -n 10 /PATH/TO/SOME_JSON.log | jq '.'


// 테스트
[root@localhost]# echo '{"name":"bloodguy","age":36}' | jq '.'
{
  "name": "bloodguy",
  "age": 36
}
// 배열의 2번째 요소만
[root@localhost]# echo '[{"name":"bloodguy","age":36},{"name":"nicehide","age":89}]' | jq '.[1]'
{
  "name": "nicehide",
  "age": 89
}
// 특정 필드만 추출
// name은 name이란 키이름으로,
// likes.movie는 movie라는 키이름으로 변환해서 출력
[root@localhost]# echo '{"name":"bloodguy","age":36,"likes":{"movie":"MadMaxFuryRoad","game":"PATAPON"}}' | jq '. | {name: .name, movie: .likes.movie}'
{
  "name": "bloodguy",
  "movie": "MadMaxFuryRoad"
}



기타 자세한 사용법은 튜토리얼(http://stedolan.github.io/jq/tutorial), 매뉴얼(http://stedolan.github.io/jq/manual) 참고.














Posted by bloodguy
,