Итак, у меня есть этот файл журнала - он очень длинный.
Все, что мне действительно нужно загрузить в массив, это строки от end\s'\w+'\soutput
до SUCCESS
.
Я хочу загрузить массив с информацией между этими двумя параметрами и выкачать имя (пример SENDALLLINES
) последнего указанного времени (пример 07:13:56
) и номер (пример 399
).
Я понятия не имею, как заставить массив перестать загружаться в строке, содержащей SUCCESS
, чтобы я мог манипулировать информацией.
end 'SENDALLMARKETS' output
07:13:46 /data/noc/startup/send_spin.sh successfully spun out SENDALLMARKETS
07:13:46 /data/noc/startup/send_spins.sh Sleeping for 5 seconds so system can catch up.
07:13:51 /data/noc/startup/send_spin.sh pats0028/PSX_TRMASTER sending spin SENDALLLINES
07:13:51 /data/noc/startup/send_spin.sh start 'SENDALLLINES' output:
SUCCESS: Line Range spins sequenced to core stream
end 'SENDALLLINES' output
07:13:51 /data/noc/startup/send_spin.sh successfully spun out SENDALLLINES
07:13:51 /data/noc/startup/send_spins.sh Sleeping for 5 seconds so system can catch up.
07:13:56 /data/noc/startup/send_spins.sh finished sending spins
07:13:56 /data/noc/startup/check_tradereporters.sh all trade reporting lines are connected and logged in
07:13:56 /data/noc/startup/send_spins.sh pats0010/SPINMASTER sending spins S ENDALLACCOUNTS SENDALLFIRMS SENDALLAIQ SENDALLSTOCKS SENDALLATTRIBUTABLE
07:13:56 /data/noc/startup/send_spin.sh pats0010/SPINMASTER sending spin SENDALLACCOUNTS
07:13:56 /data/noc/startup/send_spin.sh start 'SENDALLACCOUNTS' output:
SUCCESS: 399 account record(s) sent
end 'SENDALLACCOUNTS' output
07:13:56 /data/noc/startup/send_spin.sh successfully spun out SENDALLACCOUNTS
07:13:56 /data/noc/startup/send_spins.sh Sleeping for 5 seconds so system can catch up.
07:14:01 /data/noc/startup/send_spin.sh pats0010/SPINMASTER sending spin SENDALLFIRMS
07:14:02 /data/noc/startup/send_spin.sh start 'SENDALLFIRMS' output:
SUCCESS: 1488 firm record(s) sent
Это все, что у меня есть
#!/usr/bin/perl
use warnings;
use strict;
my $LogDir = "/home/shortcasper/perl/work_perl_short/";
my $logFile = "initstart";
my @Log_array;
open ( my $FILE, '<', "$LogDir$logFile") or die ("could not open the file -- $!")
while (<$FILE>) {
my $line = $_;
next if ($line =~ /^$/);
if ($line =~ /end\s\'\w+\'\soutput/) {
push (@Log_array, $line);
}
foreach my $logLine(@Log_array){
print $logLine;
}
@Log_array = ();
}