plutowitsch
Goto Top

URL und Username aus HTML-Datei extrahieren - sed, grep

Hallo liebe Administratoren,

ich bräuchte mal Eure Hilfe...

Aktuell bin ich dabei ein recht umfangreiches Script zu schreiben, jedoch scheitere ich an einem bestimmten Punkt... Ich habe eine HTML-Datei mit mehreren Zeilen, in jeder Zeile befindet sich ein Benutzername und eine URL, die zusammengehören:

<p>username1<a href="https://example.link/1"</a>  
<p>username2<a href="https://example.link/2"</a>  
<p>username3<a href="https://example.link/3"</a>  
<p>username4<a href="https://example.link/4"</a>  

Ich würde diese Datei gerne mit Hilfe von sed oder grep folgendermaßen aussehen lassen:

USERNAME1 - URL1
USERNAME2 - URL2
USERNAME3 - URL3
USERNAME4 - URL4

Habt ihr Vorschläge, wie ich das realisieren kann?

Mit freundlichen Grüßen

Content-ID: 317594

Url: https://administrator.de/contentid/317594

Ausgedruckt am: 22.11.2024 um 16:11 Uhr

131026
131026 12.10.2016 aktualisiert um 16:09:02 Uhr
Goto Top
Hallo,
dazu brauchen wir mehr Kontext aus der HTML-Datei oder wie die Usernamen aufgebaut sind, denn <p> Abschnitte wird es sicherlich mehrere geben vermutlich auch in anderem Kontext, oder hat der Link ein bestimmtes teilweise gleich bleibendes Muster?

Ohne mehr von der HTML-Datei zu kennen und wenn der erste Teil der URL gleich bleibt, z.B. so
sed -nre 's/.*<p>(.*?)<a href="(https:\/\/example\.link\/.*)"<.*/\1 - \2/p' datei.html  
Gruß R.
plutowitsch
plutowitsch 12.10.2016 um 16:15:41 Uhr
Goto Top
Ich habe die HTML-Datei schon so weit beschnitten, dass nur noch die Zeilen mit entsprechenden Usernamen angegeben werden und diese sehen alle, wie in meinem Beispiel aus:

<p>username1<a href="https://example.link/1"</a>   
<p>username2<a href="https://example.link/2"</a>   
<p>username3<a href="https://example.link/3"</a>   
<p>username4<a href="https://example.link/4"</a>  

Die Usernamen bestehen aus dem ersten Buchstaben des Vornames gefolgt von einem Punkt und dem Nachnamen: v.nachname
131026
Lösung 131026 12.10.2016 um 16:17:15 Uhr
Goto Top
Na dann reicht:
 sed -nre 's/<p>(.*?)<a href="(.*)".*/\1 - \2/p' datei.html  
plutowitsch
plutowitsch 12.10.2016 um 16:25:03 Uhr
Goto Top
Vielen Dank!

Du hast mir sehr geholfen!