[PERL] pobieranie informacji z loga
-
- Serdeczny Borsuk
- Posty: 123
- Rejestracja: 19 maja 2010, 19:50
- Płeć: Mężczyzna
- Wersja Ubuntu: 8.04
- Środowisko graficzne: GNOME
- Architektura: x86
[PERL] pobieranie informacji z loga
Witam!
Jak pobrać z loga np. adres źródła albo wartość jakiegoś pola np. len w perlu??
Jak pobrać z loga np. adres źródła albo wartość jakiegoś pola np. len w perlu??
- jacekalex
- Gibki Gibbon
- Posty: 4707
- Rejestracja: 17 cze 2007, 02:54
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: MATE
- Architektura: x86_64
Odp: [PERL] pobieranie informacji z loga
Wczytywanie - uchwyt pliku http://pl.wikibooks.org/wiki/Perl/Operacje_na_plikach
parsowanie linia po linii pętla while <Uchwyt_pliku> , wyrazenie regularne (funkcja split) - dzieli wiersz na kolumny wg znaku dzielącego (analogicznie do awk -F) - przypisując poszczególne pola do zmiennych.
http://pl.wikibooks.org/wiki/Perl/Opera ... egularnych
viewtopic.php?t=109474
Funkcja split:
http://pl.wikibooks.org/wiki/Perl/Opera ... egularnych
http://www.kt.agh.edu.pl/perl-faq/
http://wieluk.republika.pl/s/wzorce.html
I jeszcze to: http://www.tizag.com/perlT/perlfileinput.php
parsowanie linia po linii pętla while <Uchwyt_pliku> , wyrazenie regularne (funkcja split) - dzieli wiersz na kolumny wg znaku dzielącego (analogicznie do awk -F) - przypisując poszczególne pola do zmiennych.
http://pl.wikibooks.org/wiki/Perl/Opera ... egularnych
viewtopic.php?t=109474
Funkcja split:
http://pl.wikibooks.org/wiki/Perl/Opera ... egularnych
http://www.kt.agh.edu.pl/perl-faq/
http://wieluk.republika.pl/s/wzorce.html
I jeszcze to: http://www.tizag.com/perlT/perlfileinput.php
Pozdrawiamman perlre
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux

-
- Serdeczny Borsuk
- Posty: 123
- Rejestracja: 19 maja 2010, 19:50
- Płeć: Mężczyzna
- Wersja Ubuntu: 8.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [PERL] pobieranie informacji z loga
o dzięki wielkie
a tak przy okazji jak mam tekst
assjdhjdfhj mfbdjfgj ./c.v;d,v;d SDR=3445 TYU=356 d;fkldfk;
chcę żeby wypisało mi tylko SDR=3445
robię takie cos
to zwraca w wyniku SDR=3445 TYU=356 d;fkldfk;
jak powinno być?
metodą prób i błędów doszedłem że powinno być ~/(SRC=(.+?)\s)/) ale za bardzo nie wiem dlaczego:P
a tak przy okazji jak mam tekst
assjdhjdfhj mfbdjfgj ./c.v;d,v;d SDR=3445 TYU=356 d;fkldfk;
chcę żeby wypisało mi tylko SDR=3445
robię takie cos
Kod: Zaznacz cały
if($zmienna=~/SRC=(.*)/){print $1;}
to zwraca w wyniku SDR=3445 TYU=356 d;fkldfk;
jak powinno być?
metodą prób i błędów doszedłem że powinno być ~/(SRC=(.+?)\s)/) ale za bardzo nie wiem dlaczego:P
-
- Sędziwy Jeż
- Posty: 65
- Rejestracja: 11 gru 2008, 11:20
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [PERL] pobieranie informacji z loga
Kwantyfikatory * i + są zachłanne (greedy). To znaczy, że dopasowują się do najdłuższego znalezionego podciągu, który pozwala na dopasowanie się całego wyrażenia regularnego. Jeśli za kwantyfikatorem doda się znak ? czyli ( *? i +? ) to dopasowany będzie najkrótszy możliwy podciąg.
Czyli np:
Czyli np:
Kod: Zaznacz cały
/1(.*)1/:
01010101010
(-------)
/1(.*?)1/:
01010101010
(-)
- jacekalex
- Gibki Gibbon
- Posty: 4707
- Rejestracja: 17 cze 2007, 02:54
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: MATE
- Architektura: x86_64
Odp: [PERL] pobieranie informacji z loga
Ten przykład jest podobny do twojego przypadku:
http://perldoc.perl.org/functions/split.html
Pozdrawiam

Kod: Zaznacz cały
open(PASSWD, '/etc/passwd');
while (<PASSWD>) {
chomp;
($login, $passwd, $uid, $gid,
$gcos, $home, $shell) = split(/:/);
#...
}
Pozdrawiam

Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux

- leon1313
- Zakręcona Traszka
- Posty: 668
- Rejestracja: 02 sty 2006, 19:35
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.10
- Środowisko graficzne: KDE Plasma
- Architektura: x86
Odp: [PERL] pobieranie informacji z loga
Kod: Zaznacz cały
echo "assjdhjdfhj mfbdjfgj ./c.v;d,v;d SDR=3445 TYU=356 d;fkldfk;" | perl -lane 'print $F[3]'
"Poza tym dostałeś PLONKa i zabraniam Ci pisać na te grupe!!! Powiedziałem PLONK i sie zamknij i nawet nie knuj rzeby mi odpisywać! Zabraniam!!!"
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 7 gości