여기에 대답 값 재산의 '블랙리스트'에 기반하여 객체 선택 방법 : jq - How to select objects based on a 'whitelist' of property values을, 나는 ... 속성 값의 블랙리스트를 기반으로 개체를 선택할JQ는 - 질문에 대한 유사
다음 싶습니다 화이트리스트로 잘 작동 : curl -s 'https://api.github.com/repos/stedolan/jq/commits?per_page=10' | jq --argjson whitelist '["stedolan", "dtolnay"]' '.[] | select(.author.login == $whitelist[]) | {author: .author.login, message: .commit.message}'
{
"author": "dtolnay",
"message": "Remove David from maintainers"
}
{
"author": "stedolan",
"message": "Make jv_sort stable regardless of qsort details."
}
{
"author": "stedolan",
"message": "Add AppVeyor badge to README.md\n\nThanks @JanSchulz, @nicowilliams!"
}
문제가
, 나는 그것을 부정 할 만 쇼 'stedolan'와 'dtolnay'외에 저자에서 저지른;
[email protected]:~⟫ curl -s 'https://api.github.com/repos/stedolan/jq/commits?per_page=10' | jq --argjson blacklist '["stedolan", "dtolnay"]' '.[] | select(.author.login == $blacklist[] | not) | .author.login' | sort | uniq -c | sort -nr
14 "nicowilliams"
2 "stedolan"
1 "dtolnay"
[email protected]:~⟫ curl -s 'https://api.github.com/repos/stedolan/jq/commits?per_page=10' | jq --argjson blacklist '["stedolan", "dtolnay"]' '.[] | select(.author.login != $blacklist[]) | .author.login' | sort | uniq -c | sort -nr
14 "nicowilliams"
2 "stedolan"
1 "dtolnay"
어떤 제안 : 나는 !=
또는 not
를 사용하는 경우 그러나, 나는 같은 잘못된 결과를 얻을 것 같다?
.[] | .author.login | select(. as $i | all($blacklist[]; $i != .))
당신의 JQ 경우 :
.[] | .author.login | select(. as $i | $blacklist | index($i) | not)
그러나, 당신의 JQ가 all/2
을 가지고 가정을 사용하기위한라고 할 무언가가있다 :
감사합니다. 완벽하게 작동합니다. – user284274