元ネタ⇒ Excelを使った高速HTML生成
ということで、愛すべきAWKでやってみましょう。
↑のように必要な範囲を切り取って、おもむろにテキストに貼り付けます。
で、そのテキストファイルを(bokutati.txtで)保存します。
bokutati.txt
横浜みなと博物館 神奈川県横浜市西区みなとみらい2-1-1 045-221-0280 よこはまコスモワールド 神奈川県横浜市西区みなとみらい2-1-2 045-221-0281 八景島シーパラダイス 神奈川県横浜市西区みなとみらい2-1-3 045-221-0282 横浜マリンタワー 神奈川県横浜市西区みなとみらい2-1-4 045-221-0283 日本郵船氷川丸 神奈川県横浜市西区みなとみらい2-1-5 045-221-0284 新横浜ラーメン博物館 神奈川県横浜市西区みなとみらい2-1-6 045-221-0285
windowsからLinux or Macへそのテキストファイルを持ってきた場合は、
$ nkf -w --overwrite bokutati.txt
とかやって文字コードを変換してやるとよいでしょう。
次に、awkプログラムを書きます。
bokutati.awkファイル
BEGIN { print "<dl>" } { print "<dt>" $1 "</dt><dd><span class=\"address\">" $2 "</span><span class=\"telrrrno\">" $3 "</span></dd>" } END { print "</dl>" }
BEGINブロックは最初に必ず実行されます。
ENDブロックは最後に必ず実行されます。
真ん中のブロックは、毎行実行されます。
$0 は一行分の文字列が、$1 には1カラム目の文字列が、$2 には2カラム目の文字列が、$3 には3カラム目の文字列が入っているわけです。
でそれらを半角スペースでつなぐと、文字列が結合され、
print で標準出力されます。
ターミナルを開いて、
$ awk -f bokutati.awk bokutati.txt >> r.txt
で、
$ cat r.txt <dl> <dt>横浜みなと博物館</dt><dd><span class="address">神奈川県横浜市西区みなとみらい2-1-1</span><span class="telrrrno">045-221-0280</span></dd> <dt>よこはまコスモワールド</dt><dd><span class="address">神奈川県横浜市西区みなとみらい2-1-2</span><span class="telrrrno">045-221-0281</span></dd> <dt>八景島シーパラダイス</dt><dd><span class="address">神奈川県横浜市西区みなとみらい2-1-3</span><span class="telrrrno">045-221-0282</span></dd> <dt>横浜マリンタワー</dt><dd><span class="address">神奈川県横浜市西区みなとみらい2-1-4</span><span class="telrrrno">045-221-0283</span></dd> <dt>日本郵船氷川丸</dt><dd><span class="address">神奈川県横浜市西区みなとみらい2-1-5</span><span class="telrrrno">045-221-0284</span></dd> <dt>新横浜ラーメン博物館</dt><dd><span class="address">神奈川県横浜市西区みなとみらい2-1-6</span><span class="telrrrno">045-221-0285</span></dd> </dl>
となります。
awk可愛いですね。ちょっと覚えると、とても簡単にテキスト整形が可能になります。
またawkはとても高速なので、ログ解析にも向いています。
参考サイト:
「AWK リファレンス」
http://shellscript.sunone.me/awk.html
「The GNU Awk User's Guide」
http://www.kt.rim.or.jp/~kbk/gawk-30/gawk_toc.html