Avatar billede lorenzen_ Nybegynder
23. oktober 2001 - 11:10 Der er 5 kommentarer og
2 løsninger

åben .log og flet sammen med .log

Jeg har en masse logs som jeg godt vil have flettet sammen..
Jeg skal have åbnet loggen og sortere linie for linie efter dato..
Ehmm.. snakker jeg om en by i Rusland eller kan det lade sig gøre..? ;o)
Avatar billede lorenzen_ Nybegynder
23. oktober 2001 - 11:11 #1
(hver linie starter med dato/tid)
Avatar billede stenone Nybegynder
23. oktober 2001 - 11:49 #2
Meget afhænger af præsist hvordan selve log-linjerne er bygget op - er de opdelt med space eller tab eller...

Men her er mit (u-testede) hurtige bud.

--------------------------------------
#!/usr/local/bin/perl

$logdir = \'E:\\\\dir_med_logs\\\\\'; # Skal selfoelgelig vaere det aktuelle dir

opendir(LOGDIR, \"$logdir\") or die($!);
@logs = sort grep(/\\.log$/, readdir(LOGDIR));
closedir(LOGDIR);

foreach $log (@logs)
{
    open(LOG,\"$logdir.$log\");
        push @logen,<LOG>;
    close(LOG);
}

@logen = sort sorterEfterDato (@logen)

open(LOGEN,\">$logdir\".\'ny_samletog_sorteret_log.log\');
foreach (@logen)
{
    print (LOGEN) $_;
}
close(LOGEN);

sub sorterEfterDato
{
    @a = split(/\\t/,$a); # Maaske er det nøvendigt at \"splitte\" ved
    @b = split(/\\t/,$b); # et andet tegn end tab.
   
    # måske er det også nødvendigt at \"splitte\" dato og tid
    # for at sammenligne dem. men en simpel numerisk sammenligning
    # burde være ok.
   
    $a[0] <=> $b[0] or $b[1] <=> $a[1];
}
--------------------------------------

Jeg håber at har hjulpet dig lidt i gang.
Avatar billede thomasledet Nybegynder
23. oktober 2001 - 20:45 #3
vil mene at stenone\'s svar er en ok løsning... det var da i hvert fald sådan, jeg ville have lavet det...:)
Avatar billede lorenzen_ Nybegynder
24. oktober 2001 - 13:05 #4
Ja, jeg har siddet og \"leget\" lidt med det, men den kan ik rigtigt finde ud af det..

Den skriver der er fejl omkring det her:
----------------------------------
open(LOGEN,\">$logdir\".\'ny_samletog_sorteret_log.log\');
foreach (@logen)
{
    print (LOGEN) $_;
}
close(LOGEN);
----------------------------------

Er der en anden løsning på det?
Avatar billede breum Nybegynder
24. oktober 2001 - 21:16 #5
mon ikke bare at det er fordi der ikke er de rigtige rettigheder på den mapp hvori du lægger den nye logfil?
Avatar billede lorenzen_ Nybegynder
05. november 2001 - 02:32 #6
Ehmm.. Der skulle gerne være fuld rettigheder, men skidt.. jeg har fundet en anden løsning.. ellers tak for hjælpen..
Avatar billede lorenzen_ Nybegynder
05. november 2001 - 02:33 #7
Hmm.. skal lige lave et lille svar..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester