▽1
●
a-kuma3 ●250ポイント ![]() |
もしかして、Mac 使いでいらっしゃる?
であれば、unix のコマンドが使えるので、スクリプトでやっちゃうのが良いと思います。
例えば、こんな感じの HTML ファイルがあるとして、<table> から </table> までを切り出してくっつける、とした場合。
<html> <head> <title>?</title> </head> <body> <table> <tr> <td>111</td> <td>222</td> </tr> </table> </body> </html>
以下のようなテキストファイルを作ります。
SOURCE_DIR=source OUTPUT=output.html echo "<html><body>" > ${OUTPUT} sed -n -e "/<table>/,/<\/table>/p" ${SOURCE_DIR}/*.html >> ${OUTPUT} echo "</body></html>" >> ${OUTPUT}
頭の方に書いてある source は、元になる HTML ファイルが置いてあるディレクトリ、output.html は結合後の HTML ファイルの名前です。
このファイルを、combine.sh という名前で保存したとして、ターミナルから以下のようなコマンドを実行します。
% sh combine.sh
頭の % は、プロンプトです(ということまでは、説明しなくて良いかな)。
さっきのプログラム(正確には、シェルスクリプト)では、元になるファイルを読み込みながら、随時書き足していくような動作をするので、元になるファイルの数が多かろうが、サイズが大きかろうが、メモリ不足になることはありません(時間はかかりますけどね)。
SOURCE_DIR=source OUTPUT=output.html awk ' BEGIN { print "<html><body>"; output = 0; } END { print "</body></html>" } /<table>/ { output = 1 } output == 1 { print } /<\/table>/ { output = 0 } ' ${SOURCE_DIR}/*.html > ${OUTPUT}
タグを全部なしに置換するならば 秀丸のgrep置換とかやったほうが便利でしょう。
<.*?>
を なにもないものに 置換します。
正規表現にチェックを入れます。
それから 結合すればいいです。
もしくは結合したら、一括で置換です。
sedを使えば正規表現で簡単に削除できます。
Linuxであれば標準コマンドとして用意されています。
Windows用sed
http://www.vector.co.jp/soft/win31/util/se030822.html
oil999sと同じく私もsedがいいと思います。
あまり難しいことはわかりませんが、使いやすいと…思います。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230879/
僕は、Macをおすすめしますね!!a-kuma3さんと同じやり方で。