일부 JSON에서 파이프를 사용하여 다음과 함께 사용되는 테스트에서 와일드카드를 사용할 수 있기를 원합니다 select()
.
curl example.com/json | jq 'select(.[].properties.type == "dev*")'
dev
예를 들어 development
, devel
, 로 시작하는 유형으로 무엇이든 인쇄할 수 있기를 바랐 devil
지만 그렇지 않습니다.
select()
in 에 와일드카드를 사용할 수 있습니까 jq
?
답변1
당신은시작()기능. 귀하의 예를 사용하여 :
curl example.com/json | jq '.[].properties | select(.type | startswith("dev"))'
답변2
카츠라 사토가 보여주는 것처럼, 유형이 있는 모든 속성을 가져오려는 예입니다.다음으로 시작문자열은 표현식 dev
에 의해 가집니다.jq
.[].properties | select(.type | startswith("dev"))
그러나 다음을 사용하여 정규식으로 보다 정교한 일치를 수행할 수 있습니다.함수test
:
.[].properties | select(.type | test("^dev"))
이 jq
유틸리티는 다음에 의해 구현된 정규식의 PCRE 특성을 사용합니다.Oniguruma 정규식 라이브러리(위키피디아 링크).