两种模式之间的匹配和文件行



我正在尝试创建一个perl脚本,该脚本将捕获两个模式之间的一行并将其存储到新文件中。

这就是文件中的行的样子。

Apr 17 15:57:35 bur-7430 fmd: [ID 377184 daemon.error] SUNW-MSG-ID: FMD-8000-CV,
TYPE: Alert, VER: 1, SEVERITY: Minor
Apr 17 15:57:35 bur-7430 EVENT-TIME: Fri Apr 17 15:56:28 EDT 2015
Apr 17 15:57:35 bur-7430 PLATFORM: SUN SERVER X4-4, CSN: 1421NM900G, HOSTNAME: bur-7430
Apr 17 15:57:35 bur-7430 SOURCE: software-diagnosis, REV: 0.1
Apr 17 15:57:35 bur-7430 EVENT-ID: b22c3c73-77d7-4f4e-8030-c589bf057bb9
Apr 17 15:57:35 bur-7430 DESC: FRU '/SYS/HDD0' has been removed from the system.
Apr 17 15:57:35 bur-7430 AUTO-RESPONSE: FMD topology will be updated.

我正在尝试以下代码,但没有运气。

use warnings;
my $filename = /tmp/fname.txt;
my $fextract;
{
open my $fh, '<', $filename or die "can not open file -filename.n$!n";
local $/ = undef;
$fextract = <$fh>;
}
while(
$fextract =~ m/SUNW-MSG-ID(.*)DESC/gs
)
{
print "$1n";
}

这个脚本运行得很好,但什么结果都没有。

有人能帮忙吗?

使用您的代码(文件上有引号(对我来说效果很好

> perl script.pl 
: FMD-8000-CV,
TYPE: Alert, VER: 1, SEVERITY: Minor
Apr 17 15:57:35 bur-7430 EVENT-TIME: Fri Apr 17 15:56:28 EDT 2015
Apr 17 15:57:35 bur-7430 PLATFORM: SUN SERVER X4-4, CSN: 1421NM900G, HOSTNAME: bur-7430
Apr 17 15:57:35 bur-7430 SOURCE: software-diagnosis, REV: 0.1
Apr 17 15:57:35 bur-7430 EVENT-ID: b22c3c73-77d7-4f4e-8030-c589bf057bb9
Apr 17 15:57:35 bur-7430

最新更新