hi martin,

"Schmitt, Martin (Dregis STB C)" schrieb:
> 
> Hi Frank!

> Der Knackpunkt ist, da� die Anzahl der Prozesse, die im Rahmen eines solchen
> Shellscripts gestartet werden, ein mehrfaches der gelesenen Zeilen ist. Nimm
> mal eine Datei mit 100.000 Zeilen, zwei-drei Prozesse (grep, echo usw.) pro
> Zeile und eine hundertstel Sekunde, die f�rs Starten eines Kindproze�
> gebraucht wird, und die Zeit, die der Kindproze� (grep!!!) selbst wieder
> braucht. Perl rammt bei solchen Sachen die Shell unangespitzt in den Boden,
> egal wie schlecht das Perlscript grade mal optimiert ist.
> 
> #!/usr/bin/perl -w
> use strict or die;
> 
> my $scanfile = "scan_ip";
> my $reffile  = "ref_ip";
> my $diffile  = "diff_ip";
> 
> my %ref_ips;
> 
> open my $ref, "<$reffile" or die;
> while (<$ref>){
>         chomp;
>         $ref_ips{$_} = $_;
> }
> close $ref;
> 
> open my $scan, "<$scanfile" or die;
> open my $diff, ">$diffile"  or die;
> while (<$scan>){
>         chomp;
>         # Voraussetzung: Zeile ist IP-Adresse.
>         # Sonst mit einer Regex rausfischen.
>         next if ($ref_ips{$_}};
>         print $diff "$_\n";
> }
> close $diff;
> close $scan;

danke fuer das konstrukt. ich werde das - so gott will - noch heute
einmal probieren koennen.
mein eigenes shellscript tut nicht so wie ich will, allerdings keine
neue erfahrung ;-)
mal sehen ob es mir mit perl gelingt.


ciao,
frank
------------------------
kaiserslautern
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an