私はかなり長い間この問題の解決策を探してきましたが、自分でそれを理解することはできません.
コードのHTMLブロックがたくさんあり、内側のタグの1つに含まれる特定の文字列を検索し、一致する場合は親タグの値を返したいと考えています。これが例です」
<li rel="Returns this value">
<some other tags and elements here />
<a class="link"><span>This match</span></a>
</li>
string を検索する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
ます。提案をどうもありがとう。