Аналог explode

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
M@}{
проходил мимо

Аналог explode

Непрочитанное сообщение M@}{ » 2011-09-14 13:41:20

Приветствую!

Кто может подсказать аналог explode в php, думаю в perl он тоже есть.
Цель, разобрать IP адреса на массив $Ip[0], $Ip[1], $Ip[2], $Ip[3], и cделать реверс зону $Ip[3].$Ip[2].$Ip[1].$Ip[0].in-addr.arpa

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/


M@}{
проходил мимо

Re: Аналог explode

Непрочитанное сообщение M@}{ » 2011-09-14 16:34:34

мм, думаю меня не так поняли.
Не для перл, а для shell

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: Аналог explode

Непрочитанное сообщение FreeBSP » 2011-09-14 21:41:58

awk
sed
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Аналог explode

Непрочитанное сообщение kpp » 2011-09-15 10:20:36

Код: Выделить всё

echo "192.168.0.23" | sed 's/^\([^\.]*\)\.\([^\.]*\)\.\([^\.]*\).\([^\.]*\)/\4.\3.\2.\1.in-addr.arpa/'

Код: Выделить всё

echo "192.168.0.23" | awk -F. '{print $4"."$3"."$2"."$1".in-addr.arpa"}'
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

M@}{
проходил мимо

Re: Аналог explode

Непрочитанное сообщение M@}{ » 2011-09-15 13:27:14

kpp писал(а):

Код: Выделить всё

echo "192.168.0.23" | sed 's/^\([^\.]*\)\.\([^\.]*\)\.\([^\.]*\).\([^\.]*\)/\4.\3.\2.\1.in-addr.arpa/'

Код: Выделить всё

echo "192.168.0.23" | awk -F. '{print $4"."$3"."$2"."$1".in-addr.arpa"}'
Спасибо, но чтото я не пойму, как передать ему переменную
revers=`ifconfig eth0 | awk -F: '/inet addr/ {split($2, a, " "); print a[1]}' | awk -F. '$4"."$3"."$2"."$1".in-addr.arpa"'`
Так выводит пустую строку
revers=`echo ${ip} | awk -F. '$4"."$3"."$2"."$1".in-addr.arpa"'`
Тоже

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Аналог explode

Непрочитанное сообщение kpp » 2011-09-15 14:36:15

Код: Выделить всё

ifconfig eth3 | awk -F: '/inet addr/ {split($2, a, " "); print a[1]}' | awk -F. '{print $4"."$3"."$2"."$1".in-addr.arpa"}'
Во 2-м вызове awk упущено {print ... }
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Аналог explode

Непрочитанное сообщение kpp » 2011-09-15 14:45:38

В этом случае, лучше воспользоваться одним sed-ом:

Код: Выделить всё

ifconfig eth0 | sed -n '/^[ ]*inet addr:/{; s/^[ ]*inet addr:\([^\.]*\)\.\([^\.]*\)\.\([^\.]*\).\([^ ]*\) .*$/\4.\3.\2.\1.in-addr.arpa/p}'
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.