파일의 모든 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>