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