HTML Datei durchsuchen

kevkev

Erfahrenes Mitglied
Hallo,

Ich will aus einer HTML Datei eine bestimmte URL herausbekommen:
(...)
PHP:
</b> <a href="http://google.de">Google</a> | <a href="http.//ebay.de"><b>eBay</b></a><br>
(...)

Über php funktioniert folgender Regex:
Code:
/<a href=\"(.*?)\">Google/i

Nur wie mache Ich das über Linux, denn wenn Ich mit awk eien Datei einlese:
Code:
awk -f "lol.html"
awk: lol.html: line 1: syntax error at or near <
awk: lol.html: line 2: runaway string constant "><b>

Bringt der mir dann eben den error.
Und wie gebe Ich dem awkw dann noch ein Regex mit, und sind die Regexe bei PHP & Linux gleich?

Gruß Kevin
 
Hi.
kevkev hat gesagt.:
Nur wie mache Ich das über Linux, denn wenn Ich mit awk eien Datei einlese:
Code:
awk -f "lol.html"
awk: lol.html: line 1: syntax error at or near <
awk: lol.html: line 2: runaway string constant "><b>

Bringt der mir dann eben den error.
Du solltest ruhig mal die Manpage von awk lesen. Die Datei die du awk mit -f übergibst muß eine awk Skriptdatei sein - da sollten awk Befehle drin stehen und kein HTML (das versteht awk so schlecht).

Außerdem ist awk ein Tool um strukturierte Daten - Daten die in sog. Records und Felder unterteilt sind - zu verarbeiten ( :rtfm: ). Eine HTML Datei enthält keine solchen strukturierten Daten weil es durch Tags in eine Baumstruktur eingeteilt ist.

Probiers mal hiermit:
Code:
sed -ne 's,.*<a href="\([^"]*\)">Google.*,\1,pi' DATEI
kevkev hat gesagt.:
sind die Regexe bei PHP & Linux gleich?
Linux kennt keine regulären Ausdrücke - wozu auch, es ist nur ein Betriebssystem. Für Linux gibt es verschiedene Programme wie Perl, awk, python, sed, grep und z.B. php. Diese Programme unterstützen reg. Ausdrücke - meist in einer etwas veränderten Form.

Gruß
 
Hi,

Ok. Habe nur gedacht, vielleicht geht es ja trotzdem :)!

Also dein Code Teil funktioniert leider nicht ganz.
Aber jetzt weiß ja an welchem Programm Ich nachhaken muss ^^.

Danke :)!

Gruß Kevin
 
kevkev hat gesagt.:
Also dein Code Teil funktioniert leider nicht ganz.
Was geht denn nicht? Für dein Beispiel funktioniert er bei mir jedenfalls. Der Code ist natürlich nicht sehr tolerant (unterschiedliche Anführungszeichen, Leerzeichen, etc.).

Gruß
 
Hi,

Jedenfalls bekomme Ich bei der direkten Eingabe keine Ausgabe in die Bash.
Sry, bin noch grober Anfänger.

gruß kevin
 
Also bei mir sieht das so aus:
Code:
$ sed -ne 's,.*<a href="\([^"]*\)">Google.*,\1,pi'
</b> <a href="http://google.de">Google</a> | <a href="
http://google.de

Wobei ich die zweite Zeile selbst eingegeben habe und die dritte Zeile die Ausgabe von sed ist.

Gruß
 
Him

Mhh.
Wenn Ich das so mache will es nicht:
sed -ne 's,.*<a href="\([^"]*\)">Google.*,\1,pi' lol.html

Obwohl lol.html den ganzen HTML Quelltext (mit Umbrüche \n) enthält.

gruß Kevin
PS: Muss erstmal in die Mittagsschule ^^
 
Zuletzt bearbeitet:
Tja, dann wäre es vermutlich das beste, wenn du die Datei mal als Anhang zur Verfügung stellst oder sagst wo man sie bekommen kann.

Gruß
 
Hi,

Code:
<br> <a href="http://google.de">Google</a>
<br><br><b></b> <a href="http://ebay.de">ebay</a>

Zurzeit ist net mehr im Quelltext.

Guß Kevin
 
Zuletzt bearbeitet:
Zurück