Yahoo! ニュースの HTML ファイルの構造全体の詳細を述べることはできませんが、 少なくとも今回必要な情報が含まれている部分に関しては、 おおよそ以下のようになっているようです。
<html>
<head>
<!-- -->
<title>Yahoo!ニュース
- XXXX 新聞 - 隣りの空き地に囲いができた
</title>
........
</head>
<body marginheight=0 topmargin=0>
<center>
........
<!--- CONTENTS_TITLE_TABLE --->
<table border=0 cellpadding=2 cellspacing=0 width=100%>
<tr bgcolor="#9999cc">
<td nowrap>
<b><font size=+1>社会ニュース</font></b>
<small> - 8月10日(木)12時00分</small>
</td>
........
<!--- /CONTENTS_TITLE_TABLE --->
<!--br-->
<!--- OUTLINE_TABLE --->
<font size=5 class="s130"><b>隣りの空き地に囲いができた</b></font>
<br><br>
(記事の本文)
... <div align=right>
(XXXX 新聞) - 8月10日12時00分更新</div><br>
</td></tr>
........
... <!--- /YBB module --->
<hr width=100% size=0>
<small>
<a href="http://help.yahoo.co.jp/help/jp/news/">ヘルプ・お問い合わせ
</a><br>
Copyright (C) 2006 XXXX 新聞社
記事の無断転用を禁じます。<br>
Copyright (C) 2006 Yahoo Japan Corporation. All Rights Reserved. <br>
</small>
</center>
</body>
</html>
........
今回は、この中から不要な部分を削除して、 必要な情報のみを取り出すことにします。 必要な情報とは、上の中の以下の部分であるとします。
<!--- CONTENTS_TITLE_TABLE ---> の後ろにある
<b><font size=+1>...
</small> の部分
<!--- OUTLINE_TABLE --->
の後ろにある記事の本文
<!--- /YBB module ---> の後ろにある
「Copyright (C) 2006 ...」の部分
出力は、必要な部分が見つかったら随時その時点で出力する、 という方法もありますが、 今回は、必要な部分を一旦変数に保存しておいて、 HTML ファイルを全部読み終わった後で出力することにします。 このようにすることで、元の記事内の配置によらない出力を行うこともできますし、 出力の前に必要な部分があるかどうかのチェックなどを 行うこともできるようになります。 全部読み終わると AWK は END ブロックに処理を移しますから、 出力はこの中で行うことにします。