Hallo Dennis,
Die Zeile wo der Quelltext und der gesuchte Wert steht ist nicht einzigartig:
<td width=50>22.3</td>
Das Tabellenobjekt td kommt mit dem width-Wert öfters im Quelltext vor daher kann ich damit nichts anfangen denke ich mal.
Aber eine Zeile davor ist einzigartig:
<td width=44% align=left><strong> Temperatur</strong> (°C) </td>
Die kann ich ganz speziell mit:
cat 49X2499.html | grep Temperatur\<\/st
herausfiltern. Soweit so gut, also weiß ich nun das die darauf folgende Zeile die gesuchte ist... aber wie komme ich da nun ran?
das ist doch schon was. Und Du kommst da dran.
Wenn ich die nächste Zeile irgendwie schnappen könnte wäre echt schon was geschaft denn mit:
cat 49X2499.html | grep 22.3 | cut -d > -f 2 | cut -d < -f 1
> kann ich die Temperatur sehr gut isolieren :)
Die GNU-Variante von grep kann wunderbar mit dem Kontext gefundener Zeilen umgehen, für Dich ist die Option
-A NUM
--after-context=NUM
interessant, siehe man grep
cat 49X2499.html | grep -A 1 Temperatur\<\/st
liefert Dir
<td width=44% align=left><strong> Temperatur</strong> (°C) </td>
<td width=50>22.3</td>
als Ausgabe. Du brauchst nur die letzte Zeile.
Deswegen schickst Du das ganze durch tail und lässt Dir mit dessen Option -n 1 nur die letzte Zeile ausfiltern, siehe man tail:
cat 49X2499.html | grep -A 1 Temperatur\<\/st | tail -n 1
Wie Du daraus die Temperatur ermittelst hast Du ja schon geschrieben:
# Backslash am Ende einer Zeile maskiert das Zeilenendezeichen und sorgt somit
# für die Fortsetzung des Kommandos auf der nächsten Zeile
$cat 49X2499.html \
| grep -A 1 Temperatur\<\/st \
| tail -n 1
| cut -d \> -f 2 \
| cut -d \> -f 1
22\.3
Das geht gut voran. Weiter so!
Freundliche Grüße
Vinzenz