perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 24
Click for quality!




11.02.2012 / 12:12

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


Beitragwie erhalte ich bei grep die Zeilennummer?
Seitenanfang
Will mit grep ein @LogFileArray nach einem String durchsuchen und die Zeilennummer zurückbekommen.
Wie geht das am effektivsten?

Hier meine für mich unbbefriedigende Lösung...
my @LogFileArray=<$FILE_HANDLER>;

Habe mich erst mal mit einer Konvertierung des Fileinhaltes in einen Hash beholfen, indem der Key als Zeilennummer durchnummertiert wird:
#fill in
$I=1; %LogFileHash=(); foreach $line (@LogFileArray) {$LogFileHash{$line}=$I; $I++;}

Wem es interessiert hier die Funktion die den FileHash durchsucht:
sub GetLineFromSearchString {
my $SearchString=$_[0];
@GrepResultArray=grep (/^.*$SearchString.*$/, (keys %LogFileHash));
if ($#GrepResultArray == 0) {return($LogFileHash{$GrepResultArray[0]});}
else {#print "Warning: \"$SearchString\" doesn't found!\n";exit;};
}
######Main
#Hier soll nach der Zeile "Invoices successfully extracted\\s+:" gesucht werden
#$invoices_extracted_line enthält dann die Zeilennummer
$invoices_extracted_line= GetLineFromSearchString("Invoices successfully extracted\\s+:");

Viele Grüße Gernot

Datum: 09.12.2004-09:34

-






-
-