On 2011-06-02 14:46:52 +0300, Adrian Sevcenco wrote:
> On 06/02/2011 02:36 PM, Dan Borlovan wrote:
> > On 06/02/2011 02:34 PM, Adrian Sevcenco wrote:
> >  > Exista vreo posibilitate sa folosesc grep pentru:
> >  > afiseaza linia ce are la pozitia 3 termenul X ?
> > 
> > Pozitiile fiind separate prin?
> > 
> > Cel mai bine da un exemplu concret
> > 
> Spatii sau tab=uri ..
> am un log de forma :
> 02.06.2011 14:38:02     IP ARP_status
> --- IP ping statistics ---
> 1 packets transmitted, 1 packets received, 0% packet loss
> round-trip min/avg/max = 1.188/1.188/1.188 ms
> 
> vreau sa parcurg logul sa aflu la ce ore am avut "100% packet loss"

Pentru rearanjarea campurilor si packet loss variabil, ai putea face ceva de 
genul:

 perl -ane'/^\d{2}\./ ? ($d,$h,$ip) = (split /\s+/, $_)[0..2]
        : /(\d+)\% packet loss/ && $1 > 0 && 
        print "packet loss: $1% :: date $d $h :: ip $ip\n"' logfile

pentru formatul pe care l-ai dat:
    liniile care incep cu numar urmat de punct (02.) semnaleaza ziua, ora si ip,
    altfel, liniile care contin "packet loss" vor printa ultimele (zi/ora/ip) 
inregistrate

sigur, se poate imbunatati si transforma intr-un program cu parser mai robust,
cu actiuni definite "in caz de" :) ... etc

> 
> momentan ma gindesc la awk cu ceva de genul
> if NR == 3 && $3 == IP && (NR =+ 3 contine 100%)
> print NR

-- 
perl -MLWP::Simple -e'print$_[rand(split(q.%%\n.,
get(q{http://cpan.org/misc/japh})))]'
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui