2014-10-22 79 views
0

我看了很多找到解决方案但找不到的解决方案。我知道如何使用sed删除所有标签,但我只需要删除那些空的HTML标签或者只包含标签或空格的HTML标签,并且还要显式删除标签。例如:使用sed从文件中删除空的HTML标记

<p></p> or <p> </p> 

我用下面的命令删除所有的HTML标签,它工作正常,但我不想删除所有的标签。

sed -e 's/<[^>]*>//g' myfile.html 

使用相同的命令here。请帮助我。

回答

1

您可以使用下面的sed命令删除空标签。

sed 's/<[^\/][^<>]*> *<\/[^<>]*>//g' file 

通过Perl中,

perl -pe 's/<([^<>]*)>\s*<\/\1>//g' file 
+0

谢谢!还有一个问题,我标签并不总是像“”那样关闭,有些标签写成这样的“”。这个命令是否仍然适用于这些标签? – Hammadzafar 2014-10-22 05:46:10

+0

然后使用这个'sed -r'/ <[^\/][^<>] *> * <\/?[^<>] * \ /?> // g'file' – 2014-10-22 05:50:00

+0

谢谢!它的工作原理 – Hammadzafar 2014-10-22 05:51:54

1
sed -r 's/<([a-zA-Z0-9]+)>[ \s\t]*<\/\1>//g' file 
+0

在您更改要求后,这不起作用! :-)由于@Avinash提供了答案,我把它留在那里:-) – 2014-10-22 06:28:10