Page 1 of 1

Zeichenkette mit Shell filtern

Posted: 2003-07-15 17:42
by rouven
Hallo möchte aus einer html datei die wie folgt aussheht:
<table cellpadding="3">
<tr><td>Helligkeit</td><td>7709.33</td></tr>
<tr><td>Luftfeuchtigkeit</td><td>23.96</td></tr>
<tr><td>Regnet es?</td><td>Nein</td></tr>
<tr><td>Temperatur</td><td>32.6</td></tr>
<tr><td>Windgeschwindigkeit</td><td>7.57</td></tr>
<tr><td>Windrichtung</td><td>S</td></tr></table>
die rohdaten (variable werte) der Helligkeit, Luftfeuchtigkeit. .. ausfiltern und NUR diese Werte in die Mysql schreiben.
das ganze soll via cronjob dann gemacht werden. In die db schreiben, und cron ist kein problem, nur weiss ich nicht wie ich die zeichenkette nach den entprechenden werten filtern kann.

Hat jemand eine Idee?

Re: Zeichenkette mit Shell filtern

Posted: 2003-07-15 18:36
by mutombo

Code: Select all

sed -e :a -e 's/<[^<]*>/ /g;/</{N;s/n/ /;ba;}' 
damit müßtest du die meisten html tags wegbekommen.

Re: Zeichenkette mit Shell filtern

Posted: 2003-07-15 19:50
by rouven
kannst du mir noch sagen wie ich mit sed aus der zeile "Heligkei 7247" zb. das wor helligkeit rausbekomme?

Re: Zeichenkette mit Shell filtern

Posted: 2003-07-15 20:21
by mutombo
mit

Code: Select all

sed 's/helligkeit//'
z.b.

Re: Zeichenkette mit Shell filtern

Posted: 2003-07-15 21:10
by dea
Du hast doch bereits zwei Felder: "Bezeichner" (Helligkeit) und "Wert" (die Zahl). Die bekommst Du mit 'cut' weg, also:

Code: Select all

sed -e :a -e 's/<[^<]*>/ /g;/</{N;s/n/ /;ba;};s/ +/;/g' | cut -f"2" -d";"
(Ich hoffe, ich habe die sed-Anweisung nicht zu sehr verhunzt, aber nach meinem Verständnis müsste der letzte Befehl alle ein- oder mehrfach auftretenden Leerzeichen durch ein Semikolon ersetzen :oops:)