fl0wmag
Goto Top

Perl script zur Auswertung einer Telefonanlage

Hallo leute,

ich bin seit einiger Zeit in der Ausbildung zum Systemintegrator und soll da doch bitte mal in perl ein Auswertungsscript bauen.
Ich habe folgendermasen angefangen.

#!/usr/bin/perl

$logfile = "FilePfad";
open (LOG , $logfile) or die $!;
while(<LOG>){
@log = split(/","/);
  1. print $log[3] . "\n";

if ($log[3] == 'telefonnummer') {print $log[3] , "\n"};


}
close (LOG);


So gibt er mir zumindest schonmal das aus was ich sehen will ... in der 3ten Spalte stehen die telefonnummern die ausgewertet werden sollen.
Das einzige was ich jetzt nicht hinbekomme ist es die ganzen tollen zeilen die ich bekomme zu zählen.
So das mir nur ausgegeben wird du hast 130 zeilen bzw 130 anrufe im support gehabt.

Falls mir irgendjemand einen stoss in die richtige Richtung geben kann wäre ich sehr dankbar.

Content-ID: 285422

Url: https://administrator.de/forum/perl-script-zur-auswertung-einer-telefonanlage-285422.html

Ausgedruckt am: 27.12.2024 um 02:12 Uhr

122990
Lösung 122990 13.10.2015 aktualisiert um 17:13:34 Uhr
Goto Top
Moin,
einfach eine Variable vor der Schleife deklarieren:
my $cnt = 0;
und dann in deiner While-Schleife den Zähler bei jedem Durchlauf erhöhen:
$cnt++;
und am Schluss ausgeben:
print "Es gab $cnt Zeile(n).";
Oder gleich über alle Zeilen mit einer FOR-Schleife iterieren dann hat man die Anzahl schon von Anfang an face-wink

Gruß grexit
Fl0wMAG
Fl0wMAG 13.10.2015 um 17:14:21 Uhr
Goto Top
Habe das script jetzt so umgebaut:

#!/usr/bin/perl
use strict;
use warnings;

my $log_fh;
my $logfile = "/FilePfad";
open ($log_fh , $logfile) or die $!;
my $cnt = 0;
while(<$log_fh>){
my @log = split(/","/);
if ( defined($log[3])&&$log[3] eq 'nummer') {
$cnt++;
#print $log[3] . "\n";
#print $cnt , "\n";
}


}
close ($log_fh);
print $cnt , "\n";
exit(0);

und es rennt wie ein Länderspiel. Danke Grexit für den Fingerzeig