dehtml2a.sed rev.9 Written by Seiji Fujita http://userweb.alles.or.jp/sfujita/ =============================================================================== 説明  ̄ ̄ HTMLで記述された文書から条件付きでHTMLタグを除去します。 また、空白/タブ/改行だけが2行以上続く場合、1つの空行にまとめます。 タグを除去した結果として空行になったものも同様に、なるべく1つの空行にまと めますが、残る場合があります。[*1] ※このスクリプトは、dehtml.sedの初期版 rev.2に、水平線タグ処理と、rev.72と 同等の特殊文字の置換処理+αを追加した版です。 dehtml2a.sedと、dehtml.sed/dehtml_0.sedの大きな違いは、論理行の連結処理 をするかしないかにあり、dehtml2a.sedは連結処理をしません。 ほとんどのタグ、宣言文を除去するだけの、基本機能+αに絞ってあります。 ・改行タグを改行に変換します。 ・水平線タグを、改行 & 空白2文字 & ハイフン"-"76文字 & 改行 へ変換します。 ・特殊文字("など)が正しく";"で終了していないものは、";"を補った後に 通常文字へ変換します。特殊文字の記述は大文字(例えば")にも対応。 |を|と記述するような0プレフィックスにも対応。 ・タイトル
毎に改行を挿入 して物理的な1行を短くすることによって、回避できる場合があります。 もし
、
などが無い場合には、適宜改行を付加して下さい。
、
毎に改行を挿入する場合には、次のスクリプト predetag.sed で前処理を
施して下さい。
、
毎に改行を挿入しても、なお1行が長すぎる場合には、エラーが起こります
から、適宜改行を追加して下さい。また、変換結果に不要な改行が増えることも
あります。
------- cut here ------ 8< ------ 8< ----- 8< ----- 8< ----- 8< -----
# predetag.sed
s/\(<[pP] *[^>]*>\)/\
\1/g
s/\(<[bB][rR] *[^>]*>\)/\
\1/g
s/\(<[tT][dDrRhH] *[^>]*>\)/\
\1/g
------- cut here ------ 8< ------ 8< ----- 8< ----- 8< ----- 8< -----
(2)に対しては、ご利用のシステム(OC)の改行コードに変換するツールを利用して
改行コードを変換してから、改めてタグ除去作業をして下さい。改行コードが
システムの形式と異なる場合、SEDは、改行部分を検出することができず、一続
きの文書だと見なしてしまい、(1)と同じ事が起こります。
参考)DOS/Windowsシステムでは、CR(0x0D)とLF(0x0A)の並びで改行を
表わし、MacではCR(0x0D)だけ、UNIXではLF(0x0A)だけで改行を表わします。
[*1]
タグを除去した結果の空行が2行以上続いてしまう件を、1パスで処理するのが面倒
なので、現在の版では対応しません。それらを除去したい場合は、dehtml.sedによっ
て出力された結果を以下のスクリプトで処理して下さい。
------- cut here ------ 8< ------ 8< ----- 8< ----- 8< ----- 8< -----
s/^[ \t ]*$//
/^$/{
$b
N
/^\n[ \t ]*$/D
}
------- cut here ------ 8< ------ 8< ----- 8< ----- 8< ----- 8< -----
その他(履歴など)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
rev.0
・初期版のリメイクとして再公開。
rev.1
・タグを取るだけだと意味が違ってしまったり、分かり難くなるタグを単なる
除去から置換へ変更した。置換要領は以下の通り。
・タイトル "