2014-11-06 52 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