如何使用Sed在每行中使用相同的标记生成HTML内容
我正在寻找一个HTML文件进行修改,以便于解析。我需要把每个项目的HTML正文后,以单独的行 例如,我当前的HTML文件是如何使用Sed在每行中使用相同的标记生成HTML内容,sed,Sed,我正在寻找一个HTML文件进行修改,以便于解析。我需要把每个项目的HTML正文后,以单独的行 例如,我当前的HTML文件是 <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="en" xml:lang="en"
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-type" />
<meta name="ncc:files" content="78" />
</head>
<body>
<h1 class="title" id="h1"><a href="001.smil#txt4">ABOUT DAISY</a></h1>
<h1 class="section" id="h7">
<a href="002.smil#txt10">Cover</a>
</h1>
<span class="page-normal" id="p13">
<a href="002.smil#txt15">1</a>
</span>
<h1 class="section" id="h18">
<a href="003.smil#txt21">Swadesaabhimaani, K. Kelappan, Muhammad Abdul Rahiman</a>
</h1>
<span class="page-normal" id="p24">
<a href="003.smil#txt26">2</a>
</span>
<span class="page-normal" id="p33">
<a href="003.smil#txt35">3</a>
</span>
<h1 class="section" id="h38">
<a href="004.smil#txt41">Title</a>
</h1>
<span class="page-normal" id="p45">
<a href="004.smil#txt47">4</a>
</span>
<h1 class="section" id="h50">
<a href="005.smil#txt53">Publication</a>
</h1>
<span class="page-normal" id="p69">
<a href="005.smil#txt71">5</a>
</span>
<h1 class="section" id="h74">
<a href="006.smil#txt77">K. Ramakrishnapilla</a>
</h1>
</body>
</html>
标记后需要的html是
<h1 class="title" id="h1"><a href="001.smil#txt4">ABOUT DAISY</a></h1>
<h1 class="section" id="h7"><a href="002.smil#txt10">Cover</a></h1>
<span class="page-normal" id="p13"><a href="002.smil#txt15">1</a></span>
表示每个标记内容必须在同一行中,且不拆分。
请告知如何使用
sed
执行此操作,方法如下:将所有行合并为一行,例如使用tr-d'\n'infle>OUTFILE
然后在单独的一行中找出您想要的所有容器标记,并从中创建一个sed脚本,例如,您想要,:
#sedscript.sed
s/\n&/
s/&\n/
s//\n&/
s/&\n/
然后使用sed-f sedscript.sed OUTFILE运行它
虽然它可能适合您的需要,但它不能处理格式错误的HTML(例如重叠标记等) 虽然可以将sed
作为一项超级高级挑战来完成这项任务,但您最好在S.O.上查看答案,使用awk
设置标志变量以指示“内部”。但是,你看。您迟早会遇到操作xml(ish)数据的sed
或awk
问题。您需要学习一种具有xml支持的语言。祝你好运
#sedscript.sed
s/<h1>/\n&/
s/<\/h1>/&\n/
s/<p>/\n&/
s/<\/p>/&\n/