2014-11-06 54 views
2

我正在写需要得到所有实例,其中描述-情况下不会返回平台=>窗户的私人IPS一个bash脚本,并将其存储在一个数组$ IPSAWS EC2 CLI + JQ排除结果

这个脚本到目前为止作品(刚刚起步的私人IPS)

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

但我无法弄清楚是如何排除Windows服务器(或者相反,只包括非Windows服务器)

这是我试过的

--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是什么样的? – 2014-11-06 22:06:20

回答

1

我不使用AWS,所以我没有太多的工作要做,但基于describe-instances参考,我认为这个过滤器应该可以工作。

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

得到他们的教练!我不得不将==切换为!=,因为我试图排除Windows结果,但它工作正常! – KingRichard 2014-11-06 22:31:28