我有一个非常基本的html文件叫example.html(见下文)
<html>
<body>
<div class="one">
<div class="research">
<div class="two">
<p>Lorem ipsum...</p>
</div>
<div class="three">
<p>Lorem ipsum...</p>
</div>
<div class="four">
<p>Lorem ipsum...</p>
</div>
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我想得到的只是短语(见下文),但不是删除第一行和最后三行.
<div class="research">
<p>Lorem ipsum...</p>
<div class="two"></div>
<div class="three"></div>
<div class="four"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
我尝试过awk:
cat example.html | awk '/^<div\ class="research">$/,/^<\/div>$/ { print }'
Run Code Online (Sandbox Code Playgroud)
但似乎有些不对劲.
我也尝试过body标签(见下文)
cat example.html | awk '/^<body>$/,/^<\/body>$/ { print }'
Run Code Online (Sandbox Code Playgroud)
(结果)
<body>
<div class="one">
<div class="research">
<div class="two">
<p>Lorem ipsum...</p>
</div>
<div class="three">
<p>Lorem ipsum...</p>
</div>
<div class="four">
<p>Lorem ipsum...</p>
</div>
</div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
它工作正常.
我做错了什么?
提前致谢.
您无法使用正则表达式解析HTML.假设html是有效的xml,您可以使用:
xmlstarlet sel -t -c '//div[@class="research"]' -nl example.html
Run Code Online (Sandbox Code Playgroud)
<div class="research">
<div class="two">
<p>Lorem ipsum...</p>
</div>
<div class="three">
<p>Lorem ipsum...</p>
</div>
<div class="four">
<p>Lorem ipsum...</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
675 次 |
| 最近记录: |