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

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

일부 JSON을 파이핑하여 테스트에서 와일드카드를 사용할 수 있도록 하고 싶습니다 select().

curl example.com/json | jq  'select(.[].properties.type == "dev*")'

dev예를 들어 development, 로 시작하는 모든 유형을 인쇄할 것으로 예상했지만 그렇지 않습니다 devel.devil

select()에서 와일드카드를 사용할 수 있습니까 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 정규식 라이브러리(위키피디아 링크).

관련 정보