Shell

列出文件中的所有 html 標籤

  • July 23, 2014

我想知道是否有辦法列出文件中的所有 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>

引用自:https://unix.stackexchange.com/questions/146201