Я хотел бы знать, как извлечь часть строки из файла в perl. У меня есть файл журнала, из которого я хочу извлечь несколько значимых сведений через perl-скрипт. Мне удалось получить всю строку, которую я искал, но мне нужна только часть этой линии.Как извлечь часть строки в perl
сценарий Perl (я использовал):
#!/usr/bin/perl
use strict;
use warnings;
my $file='F:\3Np_RoboSitter\perl pgm\input.txt';
open my $fh, "<", $file or die $!;
print "************************************************************\n";
print "DC status:\n\n";
while (<$fh>) {
print if /DC messages Picked/ .. /DC messages Picked from the Queue/;
}
print "\n************************************************************\n\n";
close ($fh);
входного файла:
adfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfafafafqdrareeaf
2014-02-14 00:18:04,840 1754897056 INFO ApplicationService aadfafa123 ApplicationService ApplicationServiceCustomerID ApplicationServiceSessionToken Parse of XML started. |HostName=AAAAAA|TimeStamp=2014-02-14 00:16:39.044|Message=OUT;submitApplications.SubmitApplicationBatchProcess;Total 1311 DC messages Picked from the Queue.|Detail=<XMLNSC><LogMessage><messageText>Total 1311 DC messages Picked from the Queue.</messageText></LogMessage></XMLNSC>
dafafafzcvzvsfdfafafffffffffffffffffffffffff
Выход:
************************************************************
DC status:
2014-02-14 00:18:04,840 1754897056 INFO ApplicationService aadfafa123
ApplicationService ApplicationServiceCustomerID ApplicationServiceSessio
nToken Parse of XML started. |HostName=AAAAAA|TimeStamp=2014-02-14 00:16:39.0
44|Message=OUT;submitApplications.SubmitApplicationBatchProcess;Total 1311 DC me
ssages Picked from the Queue.|Detail=<XMLNSC><LogMessage><messageText>Total 1311
DC messages Picked from the Queue.</messageText></LogMessage></XMLNSC>
************************************************************
Желаемая Выход:
2014-02-14 00:18:04
Total 1311 DC messages Picked from the Queue. *(Which is between <messagetext> tag)*
команды, любезно предоставить ур ценное предложение для достижения этой цели в свободное время! ...
'print $ 2 if m | <(messageText)> (. *?)\1> |' –