Perl Syslog Parser

时间:2015-01-05 15:33:25

标签: regex perl

我目前正在尝试创建一个脚本,用于测试包含syslog文件关键字的正则表达式。但是,在尝试将表达式与正面查找匹配时,我无法检索结果。为了记录,我检查了文件以确保有与我希望找到的记录相关联的记录。我希望是否有人知道表达式的错误。

我正在使用if语句来测试针对条目的表达式,如下所示:

针对

等条目
Jan  5 00:37:50 Steves-MBP.default sessionlogoutd[1309]: sessionlogoutd Launched

任何帮助都非常感谢。干杯球员

根据要求,应该正确匹配的条目是,例如,networkmanager为word:

Dec  3 06:13:24 kali NetworkManager[2572]: <info>  address 172.5.2.145

2 个答案:

答案 0 :(得分:2)

假设您选择了输入,则应将\n替换为$

$word = "networkmanager";
$log = "Dec  3 06:13:24 kali NetworkManager[2572]: <info>  address 172.5.2.145";
# Note the "i".
if ($log =~ m/([A-Z]\w*\s\s[0-9]+\s[0-9]{2}:[0-9]{2}:[0-9]{2}\s.*\s$word.*$)/i) {
    print "yes\n";
}

答案 1 :(得分:0)

如果您能够安装或使用cpan模块,似乎有一个可以满足您的需求: http://search.cpan.org/~dschwei/Parse-Syslog/