2010-08-27 5 views
2

Je souhaite extraire des données entre balises HTML connues. Par exemple:Extraction de données de balise HTML avec sed

Hello, <i>I<i> am <i>very</i> glad to meet you.

deviendrais:

Je

très '

J'ai trouvé quelque chose qui fonctionne à presque faire. Malheureusement, il n'extrait que la dernière entrée.

sed -n -e 's/.*<i>\(.*\)<\/i>.*/\1/p'

Maintenant, je peux ajouter une balise de fin </i> avec un saut de ligne et cela fonctionne très bien. Mais y a-t-il un moyen de le faire avec une seule commande sed?

Répondre

0
$ awk -vFS="<.[^>]*>" '{for(i=2;i<=NF;i+=2)print $i}' file 
I 
very 
3

pour cette solution:

sed -n 's|[^<]*<i>\([^<]*\)</i>[^<]*|\1\n|gp' 

Et votre exemple manque un "/":

Hello, <i>I</i> am <i>very</i> glad to meet you. 
2

Essayez ceci:

$ sed 's/<[^>]*>//g' file.html 
Questions connexes