Hallo,
habe hier ein Problem mit dem Regulären Ausdruck weiß einfach nicht was ich eintragen muss.
uptime > average.txt
LOAD=`cat /root/average.txt | awk ???????'` # hier fehlt mir der Reguläre Ausdruck
`print $LOAD` # ausgabe zum testen
LWATCH=5
if [ $LOAD -ge $LWATCH ]
then
( macht was )
fi
so sieht der Inhalt von average.txt aus
17:30:52 up 5 days, 18:45, 1 user, load average: 0.01, 0.02, 0.00
Die Variable LOAD soll den blauen Wert annehmen.
Wäre nett wenn mir jemand helfen könnte ...
Danke im voraus.
Regulärer Ausdruck - bräuchte Hilfe
Hallo peakspray,
soweit ich das sehe, suchst Du "awk ' {print$8}'
http://www.linuxfibel.de/kapitel7.htm
mit regulären Ausdrücken, sed und awk
Die cat variante geht auch, gilt aber als unelegant
http://www.linuxserverforum.de/vb/showt ... 2#post1152
Gruß fuzzy
soweit ich das sehe, suchst Du "awk ' {print$8}'
Code: Alles auswählen
fuzzy@sid:/tmp$ cat average.txt
02:34:28 up 9:52, 2 users, load average: 0.09, 0.05, 0.08
fuzzy@sid:/tmp$ awk '{print$8}' average.txt
0.09,
mit regulären Ausdrücken, sed und awk
Code: Alles auswählen
fuzzy@sid:/tmp$ cat average.txt | awk '{print$8}'
0.09,
http://www.linuxserverforum.de/vb/showt ... 2#post1152
Gruß fuzzy
Wie wär's sonst damit:
Du jagst die Ausgabe einfach zweimal durch sed. Der erste Aufruf schnippelt alles (.*) bis average:<space> weg, der zweite dann alles nach dem Komma.
Ein Punkt steht für ein beliebiges Zeichen, der nachfolgende Stern heißt: beliebig viele Zeichen des vorigen. Also a* haut alle kleinen A's weg.
Code: Alles auswählen
uptime |sed s/.*average:\ // | sed s/,.*//
Ein Punkt steht für ein beliebiges Zeichen, der nachfolgende Stern heißt: beliebig viele Zeichen des vorigen. Also a* haut alle kleinen A's weg.