列出文件中所有的html标签

列出文件中所有的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 标签。 。 。 。

答案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>

相关内容