2015-09-11 4 views
1

Я знаю, что есть этот link, который имеет почти такой же вопрос, как и мой, и я следил за ответом там, однако это не приводит к тому, что мне нужно.Извлеките IP-адрес экземпляра после его создания

Я печатаю следующее в терминале:

aws ec2 describe-instances --instance-ids i-17xxxxxx5 | awk '/PrivateIpAddress/{print $2}' 

И я получаю этот выход:

"10.96.2.194", 
[ 
"10.96.2.194" 
"10.96.2.194" 

Как я могу просто получить 10.96.2.194?

ответ

6

Если вы хотите сделать это на разных платформах или просто хотите использовать встроенные возможности запроса JSON в AWSCLI, это также будет работать:

aws ec2 describe-instances --instance-ids i-17xxxxxx5 --query Reservations[0].Instances[0].PrivateIpAddress 
+0

Огромное вам спасибо за это. Это на самом деле довольно устрашающий ответ! – Fadi

+1

Возможно, вам понадобится добавить '--output text' в конец, чтобы получить только IP. – BMW

+1

В формате вывода по умолчанию ('' json'') IP-адрес будет находиться в двойных кавычках. При выводе '' text'' кавычек не будет. – garnaat

1

Это захватывает первую строку, которая соответствует «PrivateIpAddress», печатает второе поле в этой строке и вычеркивает символы цитаты и запятой.

aws ec2 describe-instances --instance-ids i-17xxxxxx5 | grep -m 1 PrivateIpAddress | awk '{print $2}' | sed 's/[",]//g'

+0

Красивая! Спасибо огромное! – Fadi

+1

Обратите внимание, что формат вывода (json, table и т. Д.) Также может измениться. – tedder42

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