jq 빌어 먹을 좋은

3009 단어 jq

jq 좋은



이제 jq를 만졌다.

DigitalOcean의 이미지 ID를 확인하고 싶습니다 ...



packerDigitalOcean 빌더 을 지정하고 있을 때, image_id 를 지정하고 싶지만 알고 싶으려면 API를 두드려야 한다.
두드리는 것은 좋지만 JSON에서 결과가 돌아온다.

pretty-print하지 않는 경우


curl -X GET "https://api.digitalocean.com/images/?client_id={ユーザーのclient_id}&api_key={ユーザーのapi_key}



우드...이 인간이 읽는 것이 아닙니다 ...

pretty-print를 원한다면



jq 명령에 대해 API 응답을 파이프로 연결하면 ...
curl -X GET "https://api.digitalocean.com/images/?client_id={ユーザーのclient_id}&api_key={ユーザーのapi_key} | jq '.'



아름다운 ... 깨끗하고보기 쉽습니다.

이것만이라면



파이프로 결과를 연결할 수 있기 때문에 간단한 시도해 보았다.
curl -X GET "https://api.digitalocean.com/images/?client_id={ユーザーのclient_id}&api_key={ユーザーのapi_key} " | jq '.images | .[] | if .distribution == "Ubuntu" then .distribution, .name, .id else "" end'
  • 출력된 JSON 필터링
  • .images의 내용을 꺼내기
  • array에 들어 있기 때문에 전개
  • distribution key가 "Ubuntu"이면 distribution, name, id 각각의 내용을 낸다. 그렇지 않으면 빈 문자("")를 표시합니다.

  • 결과





    우무무


    and , or , not , == 등, 평가 결과에 대해 Boolean (true or false)를 돌려준다
    참이라면 true 대신 평가한 값을 반환해 주면
    다단 필터링 가능하지 않을까라고 생각하거나 한다.
    if문이 else절 필수인 것도

    언어용 바인딩



    파이썬 용 jq. py을 찾았습니다.
    그러나 다음과 같은 이유로 설치를 시도하지 않았습니다 ...

    환경은 Mac OS X 10.8.4.
  • setup.py에 지정된 파일 이름에 typo가 있습니다 (PR 했어).
  • (setup.py 수정 후) Python 3.3.2에서 설치할 수 없습니다
  • (setup.py 수정 후) Python 2.7.5에서 설치할 수 없습니다

  • 음.

    Haskell 버전이 있습니다 ...



    브런치 보고 있으면 haskell-version라든지 있다.
    구현을 위한 프로토타입은 하스켈에서 짠 것일까...

    총평



    jq 좋아요.

    좋은 웹페이지 즐겨찾기