繁体   English   中英

如何使用sed(或类似)删除两个html标签之间的所有行?

[英]How do you remove all the lines between two html tags using sed (or similar)?

我有一个看起来像这样的文件:

<HTML>
<HEAD>
< ... stuff ... ></HEAD>
< ... stuff ... >
</HTML>

我正在尝试删除HEAD标记之间的所有内容,但似乎无法使其工作。

我想

sed -i -e 's/<HEAD>.*<\/HEAD>//g' file.HTML

应该工作,但它不会删除任何东西。

sed -i -e '/<HEAD>/,/<\/HEAD>/d' file.HTML

什么都不做。 没有错误,只是没有。

我的输入文件有问题,还是有不同的方法可以解决它?

删除标签之间的所有行,留下标签:

sed '/<tag>/,/<\/tag>/{//!d}' input.txt

删除包含标签的标签之间的所有行:

sed '/<tag>/,/<\/tag>/d' input.txt

要改变使用sed -i ... 在备份原始sed -i.bak ...将原始文件保存为input.txt.bak

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM