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