Listar todas as tags html em um arquivo

1

Eu quero saber se existe uma maneira de listar todas as tags html em um arquivo. Vamos dizer que eu tenho um arquivo file.html

<html>
<head>
<title>Test</title>
</head>
<body>
This is a test
</body>
</html>

E eu quero obter uma lista de todas as tags. Isso é:

<html>
<head>
<title>
</title>
</head>
<body>
</body>
</html>

Eu tentei usar sed

cat file.html | sed 's/<[^>]*>//g'

Mas removeu todas as tags html criadas. . . .

    
por gkmohit 23.07.2014 / 22:17

2 respostas

3

Um hack rápido com perl:

perl -wlne 'print for(/<.*?>/g)' file.html

Mas, para uma solução séria, você deve usar uma ferramenta que realmente entenda html / xml.

    
por 23.07.2014 / 22:23
2

Usar um analisador html real não é tão difícil:

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>
    
por 23.07.2014 / 23:07