ファイル内のすべての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>