2014-10-16 2 views
0

Мне нужно записать результаты из файла на экран.Perl Oneliner Regex

кошка LogFile.txt

=====================Installing Oracle======================== 
*** ERROR[Install023] Oracle is already installed in $VOL1. 
Alert: There might be an issue, Please check! 
============================================= 
=====================File Set verification======================== 
Filesystem State 512-blocks  Used  Avail Capacity Mounted on 
HOME   STARTED 143372688 119516872 23855816 83% /home 
BIN  STOPPED  -   -   -  - /nfsT/nfsdata/common 
ROOT   STARTED 143372688 119516872 23855816 83% /
TEMP   STARTED 143372688 118402344 24970344 83% /tmp 
The Filset for home directory looks Ok. 
The Filset for root directory looks Ok. 
============================================= 

Я делаю:

perl -0777 -nle 'print $2 "\n" while m/^(={21})([\w\s]+)(+={24})/gm' logfile.txt 

Но это не дает никакого результата.

Вывод должен быть.

Installing Oracle..... Alert 
File Set verification.....Ok! 
+0

'Perl -0777 -wnle ...' –

ответ

1

Это не ясно, что все возможные причины для тревоги может быть, но следующие работы для вашего образца:

perl -ne 'undef $err, print "$1 ..." if /^={21}([^=]+)={24}/; 
      $err = 1 if /ERROR/; 
      print $err ? "Alert" : "Ok!", "\n" if /={45}/' 
Смежные вопросы