Shell
列出文件中的所有 html 標籤
我想知道是否有辦法列出文件中的所有 html 標籤。假設我有一個文件
file.html
<html> <head> <title>Test</title> </head> <body> This is a test </body> </html>
我想得到所有標籤的列表。那是:
<html> <head> <title> </title> </head> <body> </body> </html>
我嘗試使用 sed,
cat file.html | sed 's/<[^>]*>//g'
但它刪除了所有 html 標籤 insted 。. . .
perl 的快速破解:
perl -wlne 'print for(/<.*?>/g)' file.html
但是對於一個嚴肅的解決方案,您應該使用真正理解 html/xml 的工具。
使用實際的 html 解析器並不難:
perl -MHTML::Parser -E ' $handler = sub {say "<".shift.">"}; HTML::Parser->new(start_h => [$handler,"tag"], end_h => [$handler,"tag"]) ->parse_file(shift @ARGV) ' file.html
<html> <head> <title> </title> </head> <body> </body> </html>