2016-10-25 5 views
0

Ich schreibe ein Shell-Skript, das als Teil dessen, was es tut, eine Webseite abkratzt, um eine Commit-Nachricht zu erhalten. Der Ausgang wird es könnte wie folgt aussehen:Html-Tags mit sed entfernen

Fix function <code>something_or_other()</code>, with a helpful fix from <a href="https://somewebsite.com">somebody</a>. <br> 
Also, fix <a href=somewhere>another thing</a> 

Und ich würde das Skript Ausgabe dieses wollen:

Fix function something_or_other(), with a helpful fix from somebody. Also, fix another thing. 

Gibt es eine Möglichkeit, dies aus mit regex beiseite zu tun? Ich bin mir der dangers der Verwendung von Regex zum Parsen von HTML gut bewusst, aber dies scheint die einzige Option zu sein. Ich würde es vorziehen, nicht zu viele nicht-allgegenwärtige externe Programme zu verwenden (z. B. GNU sed ist out, aber POSIX sed ist in Ordnung).

+0

http://stackoverflow.com/documentation/command-line/7613/parsing-html-using-xmllint-on-a-unix-like-terminal#t = 201610270431550442455 Es ist ein work in progress. Wenn Sie ein Beispiel Ihres html, das Sie analysieren, veröffentlichen, stört es mich nicht, Ihnen bei der Suche nach einer robusten Lösung zu helfen. –

Antwort

0
echo 'Fix function <code>something_or_other()</code>, with a helpful fix from <a href="https://somewebsite.com">somebody</a>. <br> 
Also, fix <a href=somewhere>another thing</a>' | sed -r s/\<[^\>]+\>//g | sed 'N;s/\n/ /' 

Ausgang:

Fix function something_or_other(), with a helpful fix from somebody. Also, fix another thing