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

관련 정보