So extrahieren Sie mithilfe von UNIX-Befehlen eine bestimmte URL aus HTML-Tags

So extrahieren Sie mithilfe von UNIX-Befehlen eine bestimmte URL aus HTML-Tags

Ich möchte einen Link http://www.rediff.com/newsaus dem folgenden <a>Tag extrahieren

<a href="http://www.rediff.com/news" onclick="trackURL('http://track.rediff.com/click?url=___http://www.rediff.com/news___&cmp=news1_nav&lnk=news1_nav&nsrv1=ushome');return false;"><div class="n_tabnormal">News</div></a>

mit einem Unix-Befehl. Bitte keine harte Codierung hierfür.

Antwort1

Die Verwendung von XML/HTML-Parsern ist eine gute Möglichkeit, XML/HTML-Daten zu bearbeiten:

xmlstarletLösung:

sed 's/&/&amp;/g' yourfile | xmlstarlet sel -t -v '//a[div/text() = "News"]/@href' -n

Die Ausgabe:

http://www.rediff.com/news

  • sed 's/&/&amp;/g'&- um das Et-Zeichen als Sonderzeichen in eine HTML-Entität umzuwandeln

  • //a[div/text() = "News"]/@href- XPath-Ausdruck, extrahiert hrefAttributwerte des aTags, wenn es einen untergeordneten Knoten divmit Text hatNews

verwandte Informationen