На самом деле это единственный раздел про unix на этом форуме
Модераторы: /dev/random , Модераторы разделов
Institut
Сообщения: 281
ОС: mint
Сообщение
Institut » 21.02.2014 20:07
Доброго вечера.
Есть задача из пинга по имени хоста получить ip адрес и передать его значение дальше в скрипт для обработки.
Пробовал конструкцию
ping -c 1 toma | awk '{print $5 }' | head -n2 | egrep -v "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\."
Задача наверное не сложная, но в пятницу вечер сам сообразить не могу.
FlySnake
Сообщения: 992
ОС: openSUSE
Сообщение
FlySnake » 21.02.2014 20:20
А просто сделать nslookup чтобы получить ip чем не подходит?
Institut
Сообщения: 281
ОС: mint
Сообщение
Institut » 21.02.2014 20:30
А просто сделать nslookup чтобы получить ip чем не подходит?
nslookup toma | tail -n2 | egrep -v "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\."
Address: 192.168.0.82
(nslookup toma | tail -n2 | egrep '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}'
Address: 192.168.0.82)
А нужно просто -
192.168.0.82
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL
Сообщение
SLEDopit » 21.02.2014 20:50
Institut писал(а): ↑ 21.02.2014 20:30
А нужно просто - 192.168.0.82
Код: Выделить всё
nslookup ya.ru | awk '/Address/{print $2}' | tail -1
Хотя nslookup есть далеко не всегда. Я бы с помощью host эту штуку делал ( он, правда, тоже не всегда установлен, но вероятность не найти nslookup несколько выше )
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Bizdelnick
Модератор
Сообщения: 21433
Статус: nulla salus bello
ОС: Debian GNU/Linux
Сообщение
Bizdelnick » 21.02.2014 21:24
Institut
У grep есть опция -o.
Пишите правильно:
в консоли
вк у́пе (с чем-либо)
в о бщем
воо бще в течение (часа)
новичо к
ню анс
по у молчанию приемле мо
проблем а
пробо вать
траф ик
Institut
Сообщения: 281
ОС: mint
Сообщение
Institut » 21.02.2014 23:09
host ya.ru | awk '{if(NR==1)print $4}'
host toma | awk '{if(NR==1)print $4}'
192.168.0.82
SLEDopit - Вы мастер кунг-фу