2014-11-06 3 views
2

Я пишу Баш скрипт, который должен получить частные IP-адреса всех тех случаях, когда описывают-экземпляры не возвращаются платформы => окна, и хранить их в массиве $ дюймов в секундуAWS EC2 кли + JQ исключить результаты

Этот скрипт работает до сих пор (только получение частных IP-адресов)

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

но то, что я не могу понять, как исключить окна серверов (или, наоборот, только включают в себя не-серверы 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? –

ответ

1

Я не использую AWS, поэтому мне нечего делать дальше, но основываясь на ссылке , я думаю, что этот фильтр должен работать.

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

Получил тренер! Мне пришлось переключить == на! =, Поскольку я пытаюсь исключить результаты Windows, но это сработало! – KingRichard

Смежные вопросы