使用Bash将.txt文件的内容解析为HTML文件

时间:2014-05-29 09:53:44

标签: bash

我有一项任务是将文本文件的内容解析为HTML的一部分。例如,我有一个文件CONTENTS.txt,其内容的格式如下:

<div class="page-header">
   <h3>TITLE1</h3> 
</div>

<p>CONTENT1 BLABLABLALBA</p>
<p>CONTENT1 BLALALBALBALA</p>
<br/>

<div class="page-header">
     <h3>TITLE2</h3> 
</div>

<p>CONTENT2 BLABLABLALBA</p>
<p>CONTENT2 BLALALBALBALA</p>
<p>CONTENT2 BLALALBALBALA</p>
<br/>

<div class="page-header">
     <h3>TITLE3</h3> 
</div>

<p>CONTENT3 BLABLABLALBA</p>

我想要的是将它们插入HOME.html中HTML的某些部分,如

<div class="span6">

.................

</div>

如何在bash脚本中执行此操作?

4 个答案:

答案 0 :(得分:0)

不确定问题是否充分有意义

https://github.com/vahidhedayati/replace_content看看这里 - 使用replace.sh你可以运行

replace.sh "TAG" "new content" file.txt

然后,这会将文本文件中的标记替换为您需要的相关html内容 - 然后您可以将该文件复制为name.html或其他任何内容。

我仍然不确定我是否理解了你的问题:

假设您有一个名为file1.txt的文件

<div class="page-header">
   <h3>TEMPLATE_TITLE</h3> 
</div>

<p>CONTENT1</p>
<p>CONTENT1_TAG1</p>
<br/>
你可以跑 replace.sh“TEMPLATE_TITLE”“新标题”file1.txt replace.sh“CONTENT1”“新内容”file1.txt replace.sh“CONTENT1_TAG1”“新标签”file1.txt

将每次调用替换您要替换的标记 - 您可以向其添加整个段,因此将标记替换为html的段.... -

通过更新replace.sh .....

获得进一步的创意,让它将输出写入新文件本身等

答案 1 :(得分:0)

试试这个:

line_number=$(sed -n '/<div class="span6">/=' home.html)
head -n $line_number home.html > output.html
cat contents.txt >> output.html
tail -n +$(($line_number+1)) home.html >> output.html

答案 2 :(得分:0)

一种可能性,使用sed

HOME.html文件中,将占位符放在要插入CONTENTS.txt的位置,例如,

<div class="span6">
@@CONTENTS.txt@@
</div>

然后使用sed

sed -e '/@@CONTENTS.txt@@/{rCONTENTS.txt' -e ';d}' HOME.html

关于你的评论:

你应该有一个模板文件,比如HOME-template.html包含你的结构和占位符,比如说:

<div class="span6">
@@CONTENTS.txt@@
</div>

您应该像这样生成HOME.html文件:

sed -e '/@@CONTENTS.txt@@/{rCONTENTS.txt' -e ';d}' HOME-template.html > HOME.html

因此,每次更改CONTENTS.txt文件时,都会运行此命令,HOME.html将反映更改。

答案 3 :(得分:0)

将此处文档与cat命令一起使用。

cat <<EOF > HOME.html
<div class="span6">
$(<CONTENTS.txt)
</div>
EOF