Zeichenkette mit Shell filtern

Bash, Shell, PHP, Python, Perl, CGI
rouven
Posts: 58
Joined: 2002-10-10 15:27

Zeichenkette mit Shell filtern

Post 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?
mutombo
Posts: 184
Joined: 2003-06-19 06:10

Re: Zeichenkette mit Shell filtern

Post by mutombo »

Code: Select all

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

Re: Zeichenkette mit Shell filtern

Post by rouven »

kannst du mir noch sagen wie ich mit sed aus der zeile "Heligkei 7247" zb. das wor helligkeit rausbekomme?
mutombo
Posts: 184
Joined: 2003-06-19 06:10

Re: Zeichenkette mit Shell filtern

Post by mutombo »

mit

Code: Select all

sed 's/helligkeit//'
z.b.
dea
Posts: 532
Joined: 2002-08-13 12:05

Re: Zeichenkette mit Shell filtern

Post 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:)