Linux Bash:轻松删除 HTML 表数据块
P粉787806024
P粉787806024 2024-04-02 09:13:43
[HTML讨论组]

我有一个使用 bash 脚本处理的 html 文件,并且想要删除空表。该文件是从 sql 语句生成的,但在未找到记录时包含表头。我想删除没有找到记录的标题。


   
   Data rows exists here
   
  
Table with data
type column1 column2 column3 column4
Empty Table To Remove
type column1 column2 column3 column4 column5 column6 column7
Data rows exists here
Table with data
type column1 column2 column3 column4

我尝试使用 grep 和 sed 的组合来删除空表。当表包含相同数量的列时,我能够完成此任务。我现在遇到了一些问题,因为我的表的列数不同。

当表具有相同数量的列时,我能够根据标题进行循环,进行计数,然后删除。由于列数不同,这不起作用。

P粉787806024
P粉787806024

全部回复(1)
P粉242741921

像这样,使用

$ xmlstarlet format -H file.html | sponge file.html
$ xmlstarlet ed -d '//table[./caption/text()="Empty Table To Remove"]' file.html 
Data rows exists here
Table with data
type column1 column2 column3 column4
Data rows exists here
Table with data
type column1 column2 column3 column4

要在 sed -i 等位置进行编辑,请使用

xmlstarlet edit -L ...

没有解释,但是不要使用sedregex来解析HTML/XML

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号