Am Die, 11 Dez 2001 schrieb Jens Wolfgarten:
Hier mal das Skript, dann sieht man besser, was ich machen will... [...] cat ifconfig.txt | grep -A 8 eth1 | grep 'RX bytes' | awk '{print $3,$4}' | sed -n -e "s/(//p" | sed -n -e "s/)//p" | sed -n -e "s/Mb//p" | sed -n -e "s/ //p" > tx.txt
cat ifconfig.txt | grep -A 8 eth1 | grep 'RX bytes' | awk '{print $7,$8}' | sed -n -e "s/(//p" | sed -n -e "s/)//p" | sed -n -e "s/Mb//p" | sed -n -e "s/ //p" > rx.txt
Irgendwie scheinst Du ein anderes ifconfig zu haben als ich, bei mir gibt es z.B. nur RX packets etc. Aber wenn ich das richtig verstehe, willst Du eine bestimmte Zeile in der Ausgabe von ifconfig parsen und den Wert für RX bzw. TX Bytes mit dem vom letzten Aufruf (gespeichert in tx_last.txt) vergleichen. Ich würde Dir dazu perl empfehlen, auf jeden Fall einfacher als diese Kombination von grep, sed und awk. Das kann perl auch alles und zwar viel schöner. Wenn Du mir mal die genaue Ausgabe schickst, die Du parsen willst inkl. einer exakten Beschreibung, was Du haben willst, kann ich Dir da auch gerne behilflich sein.
rx_gesamt=`expr $rx - $rx_last` rx_gesamt=$(($rx - $rx_last)) klappt bei mir.
Gruß Christoph -- Christoph Maurer - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen