gpt4 book ai didi

linux - Awk - 从评论中拆分 html 文件

转载 作者:太空狗 更新时间:2023-10-29 12:21:00 24 4
gpt4 key购买 nike

我有一个 html 文件,里面有这样的注释(有些可以嵌套)

<!-- Begin foo.html -->
<p>some html code</p>

<!-- Begin foo2.html -->
<p>some html code</p>
<!-- End foo2.html -->

<!-- End foo.html -->

<!-- Begin bar.html -->
<p>some html code</p>
<!-- End bar.html -->

我想做的是将 html 文件拆分为 foo.html、foo2.html 和 bar.html。 block 评论的数量未知。作为 block 的名称。到目前为止,我有这条 awk 行

awk '/<!-- Begin (.*?)-->/ {f=$1} f{print > f}  /<!-- End \1 -->/{close f; f=""}' index.html

但它不能正常工作。

关于如何解决这个问题的任何想法,或者任何有帮助的替代方法?

最佳答案

虽然我不是很清楚这个问题。但是如果你有具体的评论,那么你可以给出一个正则表达式范围。 foo2.html 部分也将附加到 foo.html 中。像这样的 -

awk '
/Begin foo.html/,/End foo.html/{print $0 > "foo.html"}
/Begin bar.html/,/End bar.html/{print $0 > "bar.html"}' index.html

测试:

[jaypal:~/Temp] cat index.html 
<!-- Begin foo.html -->
<p>some html code</p>

<!-- Begin foo2.html -->
<p>some html code</p>
<!-- End foo2.html -->

<!-- End foo.html -->

<!-- Begin bar.html -->
<p>some html code</p>
<!-- End bar.html -->

[jaypal:~/Temp] awk '/Begin foo.html/,/End foo.html/{print $0 > "foo.html"}
/Begin bar.html/,/End bar.html/{print $0 > "bar.html"}' index.html

[jaypal:~/Temp] cat foo.html
<!-- Begin foo.html -->
<p>some html code</p>

<!-- Begin foo2.html -->
<p>some html code</p>
<!-- End foo2.html -->

<!-- End foo.html -->

[jaypal:~/Temp] cat bar.html
<!-- Begin bar.html -->
<p>some html code</p>
<!-- End bar.html -->

关于linux - Awk - 从评论中拆分 html 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8612119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com