2014-11-06 8 views
2

describe-instances가 platform => windows를 리턴하지 않는 모든 인스턴스의 개인용 ips를 가져와 배열에 저장해야하는 bash 스크립트를 작성하고 있습니다. $ ipsaws ec2 cli + jq 결과를 제외하십시오

이 스크립트는

ips=$(aws ec2 describe-instances --region $r --filters "Name=tag:Name,Values=*$c*" | jq '.Reservations[].Instances[].NetworkInterfaces[].PrivateIpAddress') 

(단지 개인 IP를 받고)하지만 내가 알아낼 수 없습니다 것은 (반대로 만이 아닌 윈도우 서버를 포함, 또는) 윈도우 서버를 제외하는 방법

입니다 지금까지 작동 여기 내가 시도한 바가있다

--filters "Name=tag:Name,Values=*$c*" "Name=platform,Values=" 
--filters "Name=tag:Name,Values=*$c*" "Name=platform,Values=null" 
--filters "Name=tag:Name,Values=*$c*" "Name=platform,Values=NULL" 

파이프의 jq 쪽에서도 시도해 보았지만, 시도가 우스 웠습니다. 여기서는 게시하지 않겠습니다. 나는 당신이 저쪽에 두 개 이상의 필터를 할 수 없다는 것을 알았습니다. (내가 엉망이 아닌 한)

어떤 아이디어라도?

+0

json은 어떻게 생겼습니까? –

답변

1

AWS를 사용하지 않기 때문에 많이 읽지는 ​​않지만 describe-instances 참조를 기반으로하면이 필터가 작동해야한다고 생각합니다.

.Reservations[].Instances | 
    map(select(.Platform != "Windows") | .NetworkInterfaces[].PrivateIpAddress) 
+0

코치가 있습니다! ==로 전환해야했습니다! = 창 결과를 제외하려고 했으므로 작동했지만 작동했습니다! – KingRichard