Я искал решение этой проблемы в течение довольно долгого времени, но я не могу понять это самостоятельно.awk возвращает родительское значение тега HTML, если его дочерний тег соответствует совпадению - возможно?
У меня есть куча HTML-блоков кода, и я хочу найти определенную строку, содержащуюся в одном из внутренних тегов, и если есть совпадение, я хочу вернуть значение родительского тега. Вот пример»
<li rel="Returns this value">
<some other tags and elements here />
<a class="link"><span>This match</span></a>
</li>
Мы ищем строку This match
, и он вернется Returns this value
. Возможно ли это в AWK? Если нет, то самый простой способ сделать это? Я не против какого-либо решения, однако AWK или аналогичную команду я использую сервер Ubuntu, и у меня есть root-доступ, поэтому при необходимости я мог бы полагаться на другие языки, такие как Ruby, Python, Perl, PHP и т. д.
До сих пор я мы смогли найти строку между тегами span и вернуть ее содержимое. Однако с простой командой sed можно было бы сделать намного проще, поэтому для нее пока мало пользы. Однако она может быть полезной и может совершенствоваться чтобы сделать то, что мне нужно сделать, так что здесь идет:
awk 'BEGIN{RS="";FS="</span>"}
/li/{
for(i=1;i<=NF;i++){
if($i ~ /span/){
gsub(/.*span>/,"",$i)
print $i
}
}
}'
При использовании на приведенном выше примере, он возвращает This match
. Большое спасибо за предложения.