jq에서 "select()"와 함께 와일드카드 사용

jq에서 "select()"와 함께 와일드카드 사용

일부 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 정규식 라이브러리(위키피디아 링크).

관련 정보