Ich bin am verzeifeln...
benutze zum ersten Mal sed (und Linux hab ich auch noch nich so viel mit gemacht...)
versuche schon seit Stunden, mit sed URLs aus HTML zu extrahieren. Genau: aus der Google-Rückgabeseite zu einer Suchanfrage eine Textdatei zu erstelln, die ausschließlich die Links (nur
http://xxx.xxx) in der Rankingreihenfolge zu speichern.
Folgendes steht in meinem Script:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
|
# durch newline getrennte tags zusammensetzen
:join
/<[^>]*$/ { N; s/[ *]\n[ *]/ /; b join; }
# URL ausgeben, löschen
:loop
h
s/.*<p class=g><a href="\([^"]*\)".*$/\1/p
g
s/\(.*\)<p class=g><a href="\([^"]*\)".*$/\1/
t loop
|
So, als Erebnis gibt er alle URLs die gewünscht sind aus - allerdings nicht in der Reihenfolge in der sie in der HTML Datei vorkommen.
Irgendwie verstehe ich nicht so richtig, wie sed funktioniert...
als alternative Loop-Schleife hatte ich mir mal folgendes gedacht:
|
Quellcode
|
1
2
3
4
5
6
|
:loop
h
s/.*<p class=g><a href="\([^"]*\)".*$/\1/p
g
s/.*<p class=g><a href="[^"]*"/ /
t loop
|
Dabei kommen jetzt nicht mehr alle URLs raus, dafür aber einige doppelt - keine Ahnung, ich verstehe es nicht.
Kann mir da jemand weiterhelfen?