Dateien auslesen und Daten systematisch angeordnet in Datei ausgeben

Shamppi

Grünschnabel
Beiträge
3
Guten Abend,

ich hätte da mal eine Frage. Bin mir recht sicher, dass es in der Shell funktionieren sollte, aber kenne mich damit kaum aus. Zumindest bräuchte ich ein paar Hinweise.

Und zwar habe ich mir mit wget ein paar Webseiten runtergeladen, die liegen nun als html-Dokument vor. Nun kommt darin so etwas wie <p id="address">Wagenheimer Str. 4</p> vor. Nicht immer in genau der gleichen Zeile und natürlich mit vielen Sachen außenrum, die ich nicht brauche. Ich wollte jetzt also die Angabe Wagenheimer Str. 4 auslesen lassen und mit Angaben aus den anderen Webseiten systematisch aufgelistet haben, damit ich damit weiterarbeiten kann.

Wie gehe ich also vor. Die html-Dokumente sind alle in einem Ordner. Müssten eben auf folgende Angabe ausgelesen werden und dann alle zusammen in eine Datei geschrieben werden. Am liebsten die Straße, die Hausnummer und ggf. Hausnummerzusätze (wie a, b, 1 oder 2 und ähnliches) und dann gerne noch die Str. zu Straße werden lassen. Möglich wäre denke ich mal eine csv-Datei, die dann so aussehen könnte:
Code:
Wagenheimer Straße,4
Buntenheimer Straße,10,a
Hauptstraße,193
Hauptstraße,87,b

Wie gehe ich da am geschicktesten vor?
 

marce

Kaiser
Beiträge
1.297
Bastel Dir eine RegularExpressen, die das Pattern matcht (also das "<p id="address">.*</p>") und lass Dir dann daraus das .*-gematchte Ausgeben,

sed kann sowas sehr gut.
 

Programmer78

Doppel-As
Beiträge
146
.. und falls du in meinem Impressum landest, bekomme ich Werbung von dir? Ne also von unangeforderter Werbung habe ich genug. Sowas unterstütze ich nicht.
 

marce

Kaiser
Beiträge
1.297
Ach, waren das noch Zeiten, in denen man Leuten nicht automatisch böses unterstellte....

Mir zumindest fallen auch min. 5346765 vernünftige, plausible und gute Gründe ein, warum man sowas machen wöllte.
 

Programmer78

Doppel-As
Beiträge
146
Marce, ja da hast du Recht. Man sollte doch nicht gleich ... mein Fehler.

Bei persönlichen Daten, die auf diese Art und Weise gewonnen werden, hab ich gleich rot gesehen und an Adresshändler gedacht. Habe mal so eine Doku im TV gesehen. Ach die bringen aber auch nur Negatives im TV. Will auch mal an was Gutes Denken. Entschuldige Shamppi ... weiter im Text äh in der html.
 

Shamppi

Grünschnabel
Beiträge
3
Keine Angst Programmer, selbst wenn ich was Böses wollte, ich bekomme es nicht hin. ;) Aber ich wollte nicht mal was Böses, möchte einfach für mich selber ein paar Daten sammeln und analysieren. Aber ich finde ja nicht mal den Einstieg. Sed klingt gut, damit könnte man wohl auch mehrere Dateien durchsuchen lassen und die Ergebnisse dann gesammelt in einer Datei ablegen lassen. Aber ich bekomme es nicht mal hin mir ein einziges anzeigen zu lassen. Ich habe es geschafft, die jeweilige ganze Zeile auslesen zu lassen in der der gesuchte Begriff vorkommt, aber das ist ja nicht Sinn und Zweck. Versuche ich es dann bspw. mit
Code:
sed -n "/<p id="address">/,/<p>/p" file.txt
wird nichts ausgegeben. Was mache ich falsch?
 

Shamppi

Grünschnabel
Beiträge
3
Nö, das liefert mir einfach die ganze Zeile aus. Ich kapier's nicht, dachte nicht, dass dies so schwierig ist... :think:
 

Spröde

Alter Sack
Beiträge
177
Code:
grep -Poi '(?<=<p id="address">).*?(?=</p>)'
Der liefert nur die Adressen, falls Dein grep Perl-Regex beherrscht.
 

Ähnliche Themen

ca. 1200 PDF-Dateien auslesen und bestimmte Daten in eine CSV-Datei speichern

problem

Onlineumfrage programmieren (mehrseitige HTML Formular an PHP übergeben)

Server-Monitoring mit RRDTool

Oben