Извлечь IP-адрес из пользовательского текстового файла, используя Bash - PullRequest
0 голосов
/ 04 марта 2019

У меня есть текстовый файл со следующим содержимым:

NAME                       REGION        ADDRESS         STATUS
instance-name              europe-west1  1.2.3.4         IN_USE
instance-name-2            europe-west1  1.3.2.4         IN_USE
instance-name-3            europe-west1  1.5.3.2         IN_USE

Я хочу извлечь IP-адрес только из "instance-name-3" .Как это было бы возможно в такой ситуации?

Например, это позволяет мне найти все IP-адреса, но мне нужен только "instance-name-3" one:

grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0
-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" iplist.txt

Ответы [ 3 ]

0 голосов
/ 04 марта 2019

pBit - более компактная альтернатива решению @ waymobetta

awk '/^instance-name-3  /{print $3}' your_file.txt
0 голосов
/ 04 марта 2019

Если столбец 1 равен instance-name-3, выведите столбец 3:

awk '$1=="instance-name-3" {print $3}' file

Вывод:

1.5.3.2
0 голосов
/ 04 марта 2019

Вы можете попробовать что-то вроде следующего:

cat your_file.txt | grep 'instance-name-3' | awk '{print $3}'

Это позволит получить только IP-адрес (столбец 3) строки с именем instance-name-3

результат:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...