2016-10-25 5 views
0

Я пишу сценарий оболочки, который, как часть того, что он делает, сбрасывает веб-страницу, чтобы получить сообщение о фиксации. Выход он получает может выглядеть примерно так:Strip html tags with sed

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> 

И я хочу, сценарий для вывода этого:

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

Есть ли способ сделать это в стороне от того, с регулярным выражением? Я хорошо знаю dangers с использованием регулярного выражения для анализа HTML, но это похоже на единственный вариант. Я бы предпочел не использовать слишком много вездесущих внешних программ (например, GNU sed отключен, но POSIX sed в порядке).

+0

http://stackoverflow.com/documentation/command-line/7613/parsing-html-using-xmllint-on-a-unix-like-terminal#t = 201610270431550442455 Это незавершенное производство. Если вы публикуете пример своего html, который вы разбираете, я не против помогать вам в поиске надежного решения. –

ответ

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/ /' 

Выход:

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