соответствие и файл строки между двумя шаблонами - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь создать 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 "$1\n";
}

Сценарий работает отлично, но ничего не дает.

Может кто-нибудь помочь?

1 Ответ

0 голосов
/ 04 декабря 2018

У меня нормально работает с вашим кодом (с цитатой в файле)

> 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...