Je cherchais une solution à ce problème depuis un certain temps, mais je ne peux pas le comprendre par moi-même. J'ai donc beaucoup de blocs HTML de code, et je veux rechercher une chaîne spécifique contenue dans l'une des balises internes et s'il y a correspondance, je veux retourner sa valeur de balise parent. Voici par exemple »awk renvoie une valeur de balise HTML parent si son contenu de balise enfant correspond - possible?
<li rel="Returns this value">
<some other tags and elements here />
<a class="link"><span>This match</span></a>
</li>
Nous recherchons chaîne This match
et il retournera Returns this value
. Est-ce possible awk? Sinon, ce qui est plus simple d'y arriver? Cela ne me dérange pas de solution, mais awk ou commande similaire Je cours sur le serveur Ubuntu et j'ai un accès root, donc si je le voulais, je pourrais compter sur d'autres langages, tels que Ruby, Python, Perl, PHP, et d'autres ...
J'ai été capable de chercher une chaîne entre les balises span, et de retourner son contenu, mais cela pourrait être fait beaucoup plus facilement avec la simple commande sed, donc ça ne sert pas encore à grand chose. Soyez améliorés de faire ce que je besoin de le faire, alors voici va:
awk 'BEGIN{RS="";FS="</span>"}
/li/{
for(i=1;i<=NF;i++){
if($i ~ /span/){
gsub(/.*span>/,"",$i)
print $i
}
}
}'
Lorsqu'il est utilisé sur exemple ci-dessus, il retournera This match
. Merci beaucoup pour vos suggestions.