如何从每行具有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即可。
谢谢!
答案 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/;
}