Toon posts:

Linux shell script voor uitlezen en berekenen waarden

Pagina: 1
Acties:
  • 151 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hey iedereen

Er worden logfiles gegeneerd waar ik enkel het laatste stuk van zou moeten hebben, dus bv
  1. 192.168.55.99 - WSPJ98 - Download : 199K
  2. 192.168.55.99 - WSPJ98 - Upload : 5399K
Hoe kan ik nu die logfiles zo filteren dmv een shell script dat ik enkel de 199K en 5399K behoud?

Daarna kan ik sed 's/K/ /g' om die K eruit te halen en dan heb ik nog een vraagje over hoe ik die 2 waarden (199 & 5399) kan laten optellen in zo'n shell scriptje.

thnx

  • raoulduke
  • Registratie: Oktober 2003
  • Niet online

raoulduke

Get in!

tail
cut -d " " -f
bash: LET

Remember, if you have any trouble you can always send a telegram to the Right People.


  • Bram
  • Registratie: Oktober 1999
  • Niet online

Bram

..........

Hier een klein voorbeeldje, maar je moet zelf ook nog wel wat dingen uitzoeken.

bestand: got.txt

192.168.55.99 -WSPJ98 - Download : 199K


Hiermee krijg je het op je scherm:

cat got.txt |awk '{print $6}' ------------------$5 is bijv ":" en $4 is "download"
tekst op je scherm:
199K

Of naar een bestand, uitkomst

cat got.txt |awk '{print $6}' >>uitkomst

succes

[ Voor 25% gewijzigd door Bram op 19-02-2005 15:54 ]


  • Wilke
  • Registratie: December 2000
  • Laatst online: 22:43
Als je zeker weet dat er maar 1 dubbelepunt in die regel staat:

sed 's/^.*://' got.txt

Zie 'man sed' voor hoe dat werkt.

  • A_L
  • Registratie: Juni 2001
  • Niet online

A_L

Je kunt het ook compleet in bash doen:
alles tot en met de : strippen van een regel:
${regel##*:}
(moet je dan wel een loop omheen bouwen)

optellen kan ook direct in bash, als je de variabelen als integer verklaart:
declare -i a=1
declare -i b=2
declare -i c=a+b

code:
1
2
3
4
5
6
7
8
9
typeset -i grandtotal=0

while read line
do 
    x=${line##*:} 
    grandtotal=$grandtotal+${x%%K}
done

echo $grandtotal
in bestand stoppen en dan cat logfile|bash bestand

[ Voor 27% gewijzigd door A_L op 19-02-2005 22:24 . Reden: eens even gekeken of het wel werkte wat ik zei :-) ]