2010年9月12日

sedメモ:タブ区切りテキストからHTMLのtableへ

これは自分用のメモです。sed & awk使いには「また、車輪を再発明しとってやがな〜」とそしられそうなものばかりでしょう。

s#^#<tr>\
  <td>#
s#$#</td>\
</tr>#
s#\t#</td>\
  <td>#g

InDesignで組んだ表を選択してテキストに書き出すと、タブ区切りものが得られますが、それをHTMLでの表に書き直す、その作業の一部。<tr>と<td>タグを書き込む付けるsedスクリプトです。
1レコード=1行の方が後の処理が楽そうですが、出来上がるHTMLソースが読みやすくなるようインデント・改行を加えて、1レコード=複数行の書式にしてます。


こんな風です。

タブ区切りテキスト:
  学校数 給食実施校  未実施校 備考
   完全給食 ミルク給食  
 神戸市 85 2* 83  75校で弁当販売 *は夜間中学
阪神 尼崎市 20 1**  19 **は夜間中学での補食給食
 西宮市 20 20   
 芦屋市 3   3 
これを上のスクリプトで処理すると:
<tr>
  <td></td>
  <td></td>
  <td>学校数</td>
  <td>給食実施校</td>
  <td></td>
  <td>未実施校</td>
  <td>備考</td>
</tr>
<tr>
  <td></td>
  <td></td>
  <td></td>
  <td>完全給食</td>
  <td>ミルク給食</td>
  <td></td>
  <td></td>
</tr>
<tr>
  <td></td>
  <td>神戸市</td>
  <td>85</td>
  <td>2*</td>
  <td>83</td>
  <td></td>
  <td>75校で弁当販売 *は夜間中学</td>
</tr>
<tr>
  <td>阪神</td>
  <td>尼崎市</td>
  <td>20</td>
  <td>1**</td>
  <td></td>
  <td>19</td>
  <td>**は夜間中学での補食給食</td>
</tr>
<tr>
  <td></td>
  <td>西宮市</td>
  <td>20</td>
  <td>20</td>
  <td></td>
  <td></td>
  <td></td>
</tr>
<tr>
  <td></td>
  <td>芦屋市</td>
  <td>3</td>
  <td></td>
  <td></td>
  <td>3</td>
  <td></td>
</tr>

前後に<table><tbody>タグを書き込めば、とりあえず表の形になります:
学校数 給食実施校 未実施校 備考
完全給食 ミルク給食
神戸市 85 2* 83 75校で弁当販売 *は夜間中学
阪神 尼崎市 20 1** 19 **は夜間中学での補食給食
西宮市 20 20
芦屋市 3 3

(あ! こりゃ、例がまずかった! 兵庫県内では学校数で53%、自治体(設置者)数で75%が中学校完全給食をやってます。ミルク給食だけの神戸とか実施していない芦屋なんかは少数派なのです)

行や列ごとに背景色など書式をつけたり、数字のセルだけ右寄せにしたり...など<td>内への書式指定はawkで半自動化できるはず。それは後ほどアップします。

-

0 件のコメント: