我想知道是否有办法列出文件中的所有 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 标签。 。 。 。
答案1
Perl 的快速破解:
perl -wlne 'print for(/<.*?>/g)' file.html
但对于一个严肃的解决方案,您应该使用真正理解 html/xml 的工具。
答案2
使用实际的 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>