2014-10-22 74 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