Hirdetés

Új hozzászólás Aktív témák

  • McSzaby

    őstag

    Sziasztok,

    segítséget kérnék Perl-ben, illetve regexben inkább.

    Adott egy apache error log bejegyzés.
    Pl.:
    [Mon Nov 24 20:27:00.980961 2014] [auth_digest:notice] [pid 1486] AH01757: generating secret for digest authentication ...

    Ezt a sor szeretném split-tel, vagy bármivel, de elemekre bontani. Elég kezdő vagyok Perl-ben, ezért is írom ezt a scriptet, hogy gyakoroljak.

    Amit szeretnék -> ezt a sort szeretném úgy felbontani, hogy az elhatároló karakter tulajdonképpen a []-rész legyen. Tehát elindul [ -jellel, utána jöhet bármiből,bármennyi és a "string", változó vége ]-jel legyen.

    Ebben az esetben szeretném úgy darabokra szedni, hogy utána berakhassam egy-egy változóba őket és tudjak velük játszani.

    Amit eddig összehoztam az elég sovány.

    $file="/root/error_log";
    open(LOGFILE, "<", "$file") or die "cannot open < file: $!";
    foreach $line (<LOGFILE>) {

    ($date, $warn, $pid ) = split(/????/,$line);
    }
    print $date, "\n";
    print $warn, "\n";

    close(LOGFILE);

    Lényegében azt szeretném elérni, hogy blokkokként tudjam kezelni az egyes információkat. A splitnél akadtam el, azért van ott a rengeteg kérdőjel.
    Tehát ez jöjjön ki a végén.
    $date = Mon Nov 24 20:27:00.980961 2014
    $warn = auth_digest:notice
    $pid = pid 1486
    $x = többi mondat rész...

    Ebben tudtok segíteni? Mindenképp Perlben szeretném, mert ezt szeretném gyakorolni.

    Nagyon szépen köszönöm előre is! :R

    #ThankYouSirAlex #ThankYouLouis

Új hozzászólás Aktív témák