Как извлечь IP-адреса из текстового файла с помощью Perl? - PullRequest
6 голосов
/ 11 июля 2010

Как извлечь только IP-адреса из текстового файла с IP-адресом в строке? Я хотел бы извлечь IP-адреса, а затем перечислить IP-адреса в отдельном файле. Текстовый файл, содержащий IP-адреса, имеет следующий формат:

Хост somehost.com (192.168.1.1) работает (задержка 0,20 с).
Хост 10.1.0.0 работает (задержка 0.21 с).
Хост 172.1.0.0 работает (задержка 0,21 с).


Я пытаюсь получить полученный текстовый файл следующим образом:

192.168.1.1
10.1.0.0
172.1.0.0

Каков наилучший способ сделать это с помощью Perl?

Примечание: для правильных IP-адресов не требуется регулярное выражение, которое учитывает действительные IP-адреса ... подойдут только IP-адреса в вышеуказанном формате.

Спасибо!

Ответы [ 2 ]

16 голосов
/ 11 июля 2010
use Regexp::Common qw/net/;
while (<>) {
  print $1, "\n" if /($RE{net}{IPv4})/;
}
2 голосов
/ 11 июля 2010

while(&lt&gt)
{
  print "$1\n" if /\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b/;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...