如何使用Perl从文本文件中提取IP地址?

时间:2010-07-11 03:33:07

标签: regex perl

如何从每行具有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即可。

谢谢!

2 个答案:

答案 0 :(得分:15)

use Regexp::Common qw/net/;
while (<>) {
  print $1, "\n" if /($RE{net}{IPv4})/;
}

答案 1 :(得分:2)


while(<>)
{
  print "$1\n" if /\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b/;
}