2017-05-09 9 views
-1

Ich möchte ein Bash-Skript erstellen, das den Wert des ersten href-Attributs extrahiert. Dies ist ein relativer Link.Verknüpfungen aus Textdatei extrahieren

Also, wenn Sie das Code-Snippet unter der richtigen Ausgabe nehmen wäre "/ prd/amaz/prd151", wie dies der Text zwischen dem ersten href-Tag ist. Der ganze andere Inhalt in der Datei muss entfernt werden, da ich nur die relative Verbindung benötige.

 <td style="width: 35px;">    
     <a class="productName" href="/prd/amaz/prd151" style="color: #000000;display: inline-block; overflow: hidden"> 
<font style="font-weight: bold; color: #4f88b2; margin-left: 0px; width: auto" class="product-name">Amaz Prd 151</font></a>     <br>      
<font style="font-size: 11px; color: #828585"> Product     </font>     <br> 
<a href="https://www.myhomedb.com/id=151"><div class="activatedCount withover" title="<div style='color: #0691ca; line-height: 15px; font-size: 11px;'><b>7 Smart Home DB Users<br/></b>actually own this product<br/><br/><b>Click to view their playbooks</b></div>"><span class="icon-size-16 product-category-icon-user-count"></span><span> 7</span></div></a>   </td> 

Ich schätze wirklich Ihre Hilfe in diesem und danke!

John

+0

Was haben Sie versucht? Wenn es sich um eine richtige 'HTML'-Datei handelt, analysieren Sie dies nicht mit nicht-syntax-fähigen Tools wie' grep', 'awk' oder' sed'. Verwenden Sie Syntax-aware-Parser – Inian

+0

Es gibt sicherlich eine Möglichkeit, alle href-Tags mit Bash zu extrahieren. Ich habe Beispiele wie sed 's /.* href = \" \ (. * \) \ ". */\ 1 /" output.txt "gesehen, aber das scheint komplizierter zu sein. – user1721180

Antwort

0

mit grep Blick hinter

grep -oPm1 '(?<= href=")[^"]+' file 

beachten Sie, dass diese Suche reine Text ist. Es ist nicht kontextsensitiv (ob innerhalb Tags oder nicht).

here ist die Erklärung des Befehls

Verwandte Themen