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-Key: 285422

Url: https://administrator.de/contentid/285422

Printed on: April 20, 2024 at 03:04 o'clock

Mitglied: 122990
Solution 122990 Oct 13, 2015 updated at 15:13:34 (UTC)
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
Member: Fl0wMAG
Fl0wMAG Oct 13, 2015 at 15:14:21 (UTC)
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