Armsinglom
29-01-2020, 09:16
Добрый день.
Есть скрипт на Perl'e, которым я собираю инфу с машины. Столкнулся с проблемой при разборе файла /etc/hosts, а именно с регуляркой которая будет выцеплять нужный мне IP.
Файл hosts примерно выглядит так:
10.10.10.101 msk-pc-101-rv1.dome.name msk-rv-101-rv1
10.10.10.102 msk-pc-102-rbc1.dome.name msk-rbc-102-rv1
10.10.10.103 msk-pc-103-rp1.dome.name msk-rp1-103-rv1
10.10.10.104 msk-pc-104-rv1.dome.name msk-rv1-104-rv1
Меня интересуют IP который имеет часть имени bc1, оно иногда может быть BC1, DCBC1, dcbc1. Вообщем суть такая что нужно выгребать IP в строке где есть bc[0-9] или BC[0-9].
Побывал с начало egrep
Вот часть скрипта которая не работает:
unless(`cat /etc/hosts` =~ m/ (10\.[0-9]+\.[0-9]+\.[0-9]+)\[ +]\[a-zA-Z0-9]+\-\[a-zA-Z]+\-\[bc1]/) {
console( COLOR => 'red', MESSAGE => 'Ошибка получения IP BC' ); die; }
my $bc1 = $1;
Побывал сначало egrep делать, что бы оставалась только одна строка, запихивал её в unless, но при попытке вырвать IP все равно давал ошибку...
Есть идеи что можно сделать?
P.S. регулятора которая в данный момент в скрипте 100 раз видоизмененная, может показаться полным бредом :).
Есть скрипт на Perl'e, которым я собираю инфу с машины. Столкнулся с проблемой при разборе файла /etc/hosts, а именно с регуляркой которая будет выцеплять нужный мне IP.
Файл hosts примерно выглядит так:
10.10.10.101 msk-pc-101-rv1.dome.name msk-rv-101-rv1
10.10.10.102 msk-pc-102-rbc1.dome.name msk-rbc-102-rv1
10.10.10.103 msk-pc-103-rp1.dome.name msk-rp1-103-rv1
10.10.10.104 msk-pc-104-rv1.dome.name msk-rv1-104-rv1
Меня интересуют IP который имеет часть имени bc1, оно иногда может быть BC1, DCBC1, dcbc1. Вообщем суть такая что нужно выгребать IP в строке где есть bc[0-9] или BC[0-9].
Побывал с начало egrep
Вот часть скрипта которая не работает:
unless(`cat /etc/hosts` =~ m/ (10\.[0-9]+\.[0-9]+\.[0-9]+)\[ +]\[a-zA-Z0-9]+\-\[a-zA-Z]+\-\[bc1]/) {
console( COLOR => 'red', MESSAGE => 'Ошибка получения IP BC' ); die; }
my $bc1 = $1;
Побывал сначало egrep делать, что бы оставалась только одна строка, запихивал её в unless, но при попытке вырвать IP все равно давал ошибку...
Есть идеи что можно сделать?
P.S. регулятора которая в данный момент в скрипте 100 раз видоизмененная, может показаться полным бредом :).