2010-07-04 5 views
1

Comment puis-je supprimer des liens d'un texte HTML brut? J'ai:Supprimer les liens d'un fichier texte

Foo bar <a href="http://www.foo.com">blah</a> bar foo 

et que vous souhaitez obtenir:

bar Foo blah bar foo

après.

+0

travaillez-vous avec une langue particulière – spinon

+0

est-il d'un fichier texte, avec une poignée de liens, ou est-il entièrement html générique? Si ce dernier et vous voulez juste quelque chose de rapide et bon marché, regardez dans w3m -dump ou lynx -dump. Si vous voulez un outil répétable ou configurable, la réponse de Brian est juste, trouver un analyseur HTML pour l'environnement que vous souhaitez utiliser. – sarnold

+0

@spinon - il utilise "SED" [Stream Editor] - UNIX ... @Marko ... mettre REGEX au début de sa question ne résoudra pas son problème –

Répondre

2

Vous cherchez à analyser HTML avec des expressions rationnelles, et this won't work in all but the simplest cases, puisque le HTML n'est pas régulier. Une solution beaucoup plus fiable consiste à utiliser un analyseur HTML. Nombreux existent, pour beaucoup de langues différentes.

2
sed -re 's|<a [^>]*>([^<]*)</a>|\1|g' 

Mais la réponse de Brian a raison: Cela ne devrait être utilisé dans des cas très simples.

0

$ echo 'Foo bar <a href="http://www.foo.com">blah</a> bar foo' | awk 'BEGIN{RS="</a>"}/<a href/{gsub(/<a href=\042.*\042>/,"")}1'

Foo bar blah bar foo

Questions connexes