Regulärer Ausdruck - bräuchte Hilfe

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
peakspray
Beiträge: 4
Registriert: 07.09.2004 21:47:13
Kontaktdaten:

Regulärer Ausdruck - bräuchte Hilfe

Beitrag von peakspray » 05.04.2005 01:59:02

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.

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 05.04.2005 02:46:23

Hallo peakspray,
soweit ich das sehe, suchst Du "awk ' {print$8}' :wink:

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,
http://www.linuxfibel.de/kapitel7.htm
mit regulären Ausdrücken, sed und awk

Code: Alles auswählen

fuzzy@sid:/tmp$ cat average.txt | awk '{print$8}'
0.09,
Die cat variante geht auch, gilt aber als unelegant :wink:
http://www.linuxserverforum.de/vb/showt ... 2#post1152

Gruß fuzzy

peakspray
Beiträge: 4
Registriert: 07.09.2004 21:47:13
Kontaktdaten:

Beitrag von peakspray » 05.04.2005 03:39:02

Da schlägt sich ja noch jemand die Nacht um die Ohren ;-)

1000 Dank für die Info und auch für den Link, der hat mich schon schlauer gemacht.

N8

Benutzeravatar
Warlord
Beiträge: 128
Registriert: 10.03.2005 12:18:18
Wohnort: Norddeutschland

Beitrag von Warlord » 05.04.2005 14:02:22

Wie wär's sonst damit:

Code: Alles auswählen

uptime |sed s/.*average:\ // | sed s/,.*//
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.

Antworten