我有一个大文件,里面装满了我要解析特定数据的文本行。我想要的数据的示例行是:
results: IF-MIB::ifInOctets.9 = Counter32: 23212027
其中Counter32的值发生变化,if * .Octets。\ d发生变化。如果需要,我不介意需要多个'if'语句来获取数据,但我无法确定我缺少的是什么。我已经检查了perl参考文档和正则表达式帮助文档,我无法看到我遗漏的内容。
这是我所拥有的样本(其基本形式适用于我正在进行的其他项目):
my $line = $_;
#print $line;
if ($line =~ "/result.*ifOutOctets\.6.* = counter32/i"){
print $line; #this is here only for testing to see if I am matching the line since the file is not filling in
我尝试在if($ line =〜“”)位置使用以下行,我确信我遗漏了一些简单的但却无法找到它的内容:
/result(.*)ifOut(.*) = counter32/i
/result.*ifOut.* = counter32: (\d*)/i
/result.*IF-MIB::ifOut.*(\d*) = counter32: (\d*)/i
我这里有一台Mac用于通过grep进行测试,并且使用此表单成功返回结果:
grep -i "result.*ifOutOctets.* = counter32" fileName
答案 0 :(得分:3)
在Perl中,你没有引用正则表达式。更正后的代码是:
my $line = $_;
if ($line =~ /result.*ifOutOctets\.6.* = counter32/i)
{
# do whatever
}